摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2837额,这两天做上了数论,搞了一个上午终于AC了,不过还是看了别人的代码。。就是利用一个公式A^B %C = A^( B%phi[C] + phi[C]) %C (B>=phi[C])大致思路还算清晰,就是要注意中间的细节。回头再看看吧~~View Code 1 # include<stdio.h> 2 # include<string.h> 3 # include<stdlib.h> 4 __int64 eular(__int64 num) 5 { 6 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=12991/x + 1/y = 1/n因为x,y,n均为正整数,所以x,y均要大于n。设y=n+k;那么x=n^2 / k + n因为x为正整数,所以k为n^2的因子。因为1 ≤ n ≤ 10^9,所以不能枚举到n求n^2的因子个数。对于一个数n如果n=q1^a1 * q2^a2 *...qk^ak;q1,q2...qk均为n的素因子,那么n的因子个数就可以表示为(a1+1)*(a2+1)*...*(ak+1);n^2= n*n;所以n^2=q1^(2*a1) * q2^(2*a2)*...*qk^( 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3221矩阵乘法和数学的结合。由题目意思可知:f[n]=f[n-1]*f[n-2];f的前面几项可以罗列出来:a^1*b^0,a^0*b^1,a^1*b^1,a^1*b^2,a^2*b^3....可以发现a的指数和b的指数均类似于斐波那契数列。用矩阵的快速幂可以很快的求出第n项a和b的指数分别是多少。但是这个指数会非常大,存不下来,需要对一个数去模。这里需要用到一个公式:A^B%C=A^( B%Phi[C] + Phi[C] )%C (B>=Phi[C])Phi[C]表示不大于C的数中与C互质的 阅读全文