HDU 5728 - PowMod】的更多相关文章

HDU 5728 - PowMod 题意:    定义: k = ∑(i=1,m) φ(i∗n) mod 1000000007 给出: n,m,p ,且 n 无平方因子 求: ans= k^(k^(k...k)) mod p  (k有无限个)    分析: 欧拉函数 + 指数循环节        第一部分 求出 k.        定理: 1.欧拉函数是非完全积性函数: φ(m*n) = φ(n)*φ(m) , 当且仅当GCD(n,m) = 1.        应用:            ∑(…
Declare: k=∑ m i=1 φ(i∗n) mod 1000000007 k=∑i=1mφ(i∗n) mod 1000000007 n n is a square-free number. φ φ is the Euler's totient function. find: ans=k k k k ... k      mod p ans=kkkk...k mod p There are infinite number of k k InputMultiple test cases(te…
题意:中文题自己看吧 分析:这题分两步 第一步:利用已知公式求出k: 第二步:求出k然后使用欧拉降幂公式即可,欧拉降幂公式不需要互质(第二步就是BZOJ3884原题了) 求k的话就需要构造了(引入官方题解) 然后就求出k了,我就很奇怪为什么是这个式子,然后就网上搜啊搜 找到了一个推导(看完了以后恍然大悟) 推导链接:http://blog.csdn.net/wust_zzwh/article/details/51966450 高度仰慕数学好的巨巨 吐槽:这个题n是无平方因子,然后就要往欧拉函数是…
比赛快结束的适合看了一下D题,发现跟前几天刚刚做过的HDU 5728 PowMod几乎一模一样,当时特兴奋,结果一直到比赛结束都一直WA.回来仔细一琢磨才发现,PowMod这道题保证了n不含平方因子,而Easy Math却没有.只要加一条特判,这道题就过了. AC代码贴在下面.求莫比乌斯函数前缀和的那一部分是我当时在网上临时找的代码,向那位仁兄道谢. #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int…
E - The Boss on Mars Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4059 Description On Mars, there is a huge company called ACM (A huge Company on Mars), and it’s owned by a younger boss. Due…
HDU 5793 - A Boring Question题意: 计算 ( ∑(0≤K1,K2...Km≤n )∏(1≤j<m) C[Kj, Kj+1]  ) % 1000000007=? (C[Kj, Kj+1] 为组合数)    分析: 利用二项式展开: (a + b) ^ n =  ∑(r = 0, n) (C[n, r] * a^(n-r) * b^r )        化简:           ∑(0≤K1,K2...Km≤n )∏(1≤j<m) C[Kj, Kj+1]       …
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4633 典型的Polya定理: 思路:根据Burnside引理,等价类个数等于所有的置换群中的不动点的个数的平均值,根据Polya定理,不动点的个数等于Km(f),m(f)为置换f的循环节数,因此一次枚举魔方的24中置换,人肉数循环节数即可,注意细节,别数错了. 1.静止不动,(顶点8个循环,边12个循环,面54个循环) 2.通过两个对立的顶点,分别旋转120,240,有4组顶点,(点4个循环,边4个…
HDU 6187 Destroy Walls (思维,最大生成树) Destroy Walls *Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) Total Submission(s): 1784 Accepted Submission(s): 692 * Problem Description Long times ago, there are beautiful histor…
/* HDU 6143 - Killer Names [ DP ] | 2017 Multi-University Training Contest 8 题意: m个字母组成两个长为n的序列,两序列中不能包含同一个字母,问对数 分析: 问题归结于: 包含i(1<=i<=m)个字母的长为n的序列的个数 则答案为 ans = sum of dp[n][i] * pow(m-i, n); 易得 dp[a][b] = b*dp[a-1][b] + C[m-b+1][1] * dp[a-1][b-1]…
思路和任意模数FFT模板都来自 这里 看了一晚上那篇<再探快速傅里叶变换>还是懵得不行,可能水平还没到- - 只能先存个模板了,这题单模数NTT跑了5.9s,没敢写三模数NTT,可能姿势太差了... 具体推导大概这样就可以了: /* HDU 6088 - Rikka with Rock-paper-scissors [ 任意模数FFT,数论 ] | 2017 Multi-University Training Contest 5 题意: 计算 3^n * ∑ [0<=i+j<=n]…