河工大校赛 Hmz 的女装 http://218.28.220.249:50015/JudgeOnline/problem.php?id=1265

一个数学公式  当然单纯的推   是很难推出来的

题意所计算的没有现成的公式  但是能够通过转化找到我们所要的

所需要的公式  :用m个颜色去涂n个区域 要求相邻不同色 公式: (m-1)的n次方+(m-1)*(-1)的n次方

而我们需要的是两个点必须相同   所以可以规划成两个只有一个相交点的多边形

比如n=8要1和4的相同  就可以理解为123三点组成一个环  而45678五个点组成一个环

我们将两个环的种数相乘  因为1和4颜色相同  所以要再除以k  也就是多出了一个k

所以又用到  (sum/k)%mod  即sum*(k^(mod-2))%mod

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
#include<vector>
#include<map>
#include<math.h>
using namespace std;
#define INF 0x3f3f3f3f
#define LL long long
#define N 100006
LL mod=1e+9+7;
LL q(LL a,LL b)
{
    LL c=1;
    while(b)
    {
        if(b%2==1)
            c=c*a%mod;
        b=b/2;
        a=a*a%mod;
    }
    return c;
}
int main()
{
    LL n,m,k,e,f;
    while(scanf("%lld%lld%lld",&n,&m,&k)!=EOF)
    {
        LL w=q(k,mod-2);
        while(m--)
        {
            scanf("%lld%lld",&e,&f);
            f=abs(f-e);
            e=n-f;
            LL sum=q(k-1,e);///指数幂
            if(e%2) sum=(sum-k+1+mod)%mod;
            else sum=(sum+k-1+mod)%mod;///利用公式求出一个环中有多少种
            LL summ=q(k-1,f);
            if(f%2) summ=(summ-k+1+mod)%mod;
            else summ=(summ+k-1+mod)%mod;
            printf("%lld\n",(sum*summ)%mod*w%mod);
        }
    }
    return 0;
}
时间: 2024-11-10 05:22:32

河工大校赛 Hmz 的女装 http://218.28.220.249:50015/JudgeOnline/problem.php?id=1265的相关文章

河工大校赛 魔法宝石 http://218.28.220.249:50015/JudgeOnline/problem.php?id=1262

题目就是一道最短路的变形  数据比较大  所以使用邻接表以及队列来完成 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<queue> #include<vector> #include<map> #include<math.h> using namespace std; #define INF

(dp)17bupt新生赛——B. Hmz 的女装

B. Hmz 的女装 2017新生赛 时间限制 1000 ms 内存限制 65536 KB 题目描述 Hmz为了女装,想给自己做一个长度为n的花环.现在有k种花可以选取,且花环上相邻花的种类不能相同.Hmz想知道,如果他要求第l朵花和第r朵花颜色相同,做花环的方案数是多少.这个答案可能会很大,你只要输出答案对109+7取模的结果即可. 输入格式 第一行三个整数n,m,k(1≤n≤100000,1≤m≤100000,1≤k≤100000)接下来m行,每行两个整数l,r,表示要求第l朵花和第r朵花颜

2014东北农大校赛--D.Cross the middle (任意两点最短路径 Floyd)

Cross the middle Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 36  Solved: 13 [Submit][Status][Web Board] Description n个点的图,给出任意两点之间的距离,m个询问,每次询问Mid是否可能出现在从Start到End的最短路径上. Input 第一行n,m 接下来是一个n*n的邻接矩阵,w[i][j]表示i到j的距离 接下来m行 每行start,end,mid N,m<=100,

2014东北农大校赛--A. Paint it! (预处理)

1141: A.Paint it! Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 13  Solved: 10 [Submit][Status][Web Board] Description 有一个n*m的棋盘,每个格子只可能是黑和白两种颜色,你可以使用染料将某个格子染成黑色或者白色.求最少需要染多少个格子, 能使当前的棋盘变成类似于国际象棋的棋盘(每个格子临边的四个格子颜色都不与该格子的颜色相同). Input n m(n,m<=100) 接下

2014工大校赛题目以及解

a,b题不说. c题思路是每次枚举俩个点,用半径R确定最大的圆(这样的圆有俩个,求圆心手算有点小麻烦),更新最大值,3次方的,100个点,不会超时. D题是枚举+贪心,所有物品一共只能是N+1种被拿的情况:要么全是用R(该位子是若用右手标记R,若用左手标记L):RRR...RRR,或者第一个物品用L:LRRR...RR,.....依次到LLLLLL..LLL,一个序列来记录每个物品是被左手还是右手拿.枚举所有序列,如LLL...RRR,贪心:那必然是一次L一次R,多出来的需要额外开销能量.如LL

川大/电子科大校赛

第一次出校比赛 比赛时间: 电子科技大学校赛:2015.4.4 周六 四川大学校赛:2015.4.6 周一 之前本以为可以愉快地正大光明地不上课出去玩玩,不过后来才发现正值清明节,好像亏了,并不能好好滴玩耍,不过少上了4节课也是不错的,哈哈. 4.3 上午11点从学校出发,坐27路公交到圣水寺转车,然而发现时间并不多了,于是打车赶到火车站,无奈排队取票和进站的人都多得不行,看来之前小框框建议早点走是极为明智的,毕竟假期,无形甩锅....好不容易取到票出来但是进站的队伍又好长好长,只有10分钟点车

squee_spoon and his Cube VI---郑大校赛(求最长子串)

市面上最常见的魔方,是三阶魔方,英文名为Rubik's Cube,以魔方的发明者鲁比克教授的名字命名.另外,二阶魔方叫Pocket Cube,它只有2*2*2个角块,通常也就比较小:四阶魔方叫Revenge Cube,这是因为就算你好不容易复原了三阶魔方,四阶魔方也会向你“复仇”:而五阶魔方叫Professor Cube,人们认为只有专家才能够复原这么复杂的魔方. 作为ACM(A Cube Master),squee_spoon准备为九阶正十二面体魔方命名,此时他的脑中浮现出一个长长的字符串S,

杭师大校赛总结

感想: 这次校赛总有些遗憾,有两道题目我总觉得可以做出来,但是却又没做出来, 一个是没有将以前做过的题目的规律总结,就是没有好好的整理以前的知识点, 还有就是做题的速度太慢了,H题到了最后才想出一个新的点子,还没来得及实现比赛就结束了. 总的来说,我觉得比赛就是考察5个方面,速度,细节,模板(可能不太常用),语言(包括C++)和配合, 只要抓住这几个方面就好了,就我而言,还要提高速度,注重细节,不断总结,完善自己的模板. 相信下一次我一定能够A更多的题. 原文地址:https://www.cnb

2019武科大校赛游记

我佛了,刚刚登博客用户名密码一起出锅,还好我机智尝试多次爬了进来. 这次的校赛纯属意外,本来这段时间的计划只不过是好好弄弄紫书上的题,结果看见Google赞助就脑子不拎清报名了,报名过程依旧很曲折,但我不想多说,总之就是随便找了个同学一起去玩了,由于没有前期磨合,甚至两个人完全不熟,所以最后很惨ORZ. 开局我们就很顺利找到了M是签到,然后光速过了.接着队友信誓旦旦和我说有一道是矩阵快速幂,然后我找了板子他去写...好像一个小时里T了无数次...在他自闭的时候我看出I是一道可做的,把三种情况和公