gcd(a, b)用于求解自然数a,b的最大公约数 int gcd(int a, int b) { ) return a; return gcd(b, a%b); } extgcd(a, b, x, y)用于求解方程ax+by = 1的一组解,并返回a,b的最大公约数 int exgcd(int a, int b, int &x, int &y) { int d = a; ) { d = exgcd(b, a%b, y, x); y -= (a/b)*x; } else { x = ; y…
题目链接:http://poj.org/problem?id=1061 解题报告:两只青蛙在地球的同一条纬度线上,选取一个点位坐标轴原点,所以现在他们都在同一个首尾相连的坐标轴上,那么他们现在的位置分别是x和y,他们每次跳的时间是一样的,跳的距离分别是m,n,现在他们像同一个方向开始跳,要你求出最少跳多少步会出现在同一个位置. 扩展GCD,k * m + x - (k * n + y) = c * l; //跳了k步之后相遇,这时候到原点的距离之差会是周长的整数倍 变形之后得: k…
BZOJ_2242_[SDOI2011]计算器_快速幂+扩展GCD+BSGS 题意: 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给定y,z,p,计算满足Y^x ≡ Z ( mod P)的最小非负整数. 分析: 各种板子题 代码: // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include <std…