数论:逆元
skajre
这个作者很懒,什么都没留下…
展开
-
HDU 2669 Romantic
#include #include #include #include typedef long long LL; using namespace std; void gcd(LL a,LL b,LL &d,LL &x,LL &y) { if(!b) {d=a;x=1;y=0;} else {gcd(b,a%b,d,y,x);y-=x*(a/b);} } LL cal(int a,原创 2016-07-15 10:35:14 · 196 阅读 · 0 评论 -
HDOJ 1576 A/B
思路:设(A/B)%9973 = K, 则A/B = k + 9973x (x未知), 因此A = kB + 9973xB, 又A%9973 = n, 所以kB%9973 = n, 故kB = n + 9973y (y未知) 故(k/n)B +(-y/n)*9973 = gcd(B,9973) = 1 扩展欧几里得 求出k/n, 再乘以个n,记得取模,就是answer了 #inclu原创 2016-07-15 14:52:05 · 178 阅读 · 0 评论 -
POJ 1061 青蛙的约会
解题报告:首先设一个k为两只青蛙跳的次数,那么k即为本题所求的变量。 那么等式(x+k*m)mod L=(y+k*n)mod L成立; 通过变形,变成(x+k*m)-(y+k*n)=p*L(p为一个整数)(该式的意思是,两只青蛙相减的路程为纬度L的整数倍,因为由上式可知,左右两边相减为0,那么他们的余数一定相等,被取余掉的部分都为L的整数倍,相减之后仍然是L的整数倍); 再通过变形,成为k*原创 2016-07-15 16:59:43 · 234 阅读 · 0 评论