[HDU1576] A/B(扩展欧几里得)
2024-08-25 15:56:18
n = A % 9973 -> n = A - A / 9973 * 9973
设 x = A / B(题目所述,B|A) -> A = B * x
所以 B * x - A / 9973 * 9973 = n
设 y = A / 9973
则 B * x - 9973 * y = n
B 和 n 已知, gcd(B, 9973) == 1
所以可以求出 B * x + 9973 *(- y) == 1 时的 x 的解
然后 x 再 * n,最后求 (x % 9973 + 9973) % 9973 即为答案
——代码
#include <cstdio> inline void exgcd(int a, int b, int &x, int &y)
{
if(!b){x = , y = ; return;}
exgcd(b, a % b, y, x);
y -= a / b * x;
} int main()
{
int n, b, x, y, T;
scanf("%d", &T);
while(T--)
{
scanf("%d %d", &n, &b);
exgcd(b, , x, y);
x *= n;
printf("%d\n", (x % + ) % );
}
return ;
}
最新文章
- android_m2repository_rxx.zip下载地址以及MD5
- css选择器(E[att^=”val”]序号选择器)
- 传引用 C(转)
- ArcGis 10+Oracle发布WFS-T服务,无法更新Feature的解决方法
- javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
- String创建对象的个数--西北狼
- Eclipse中将classes文件删除之后显示:找不到或无法加载主类解决方案
- HNU OJ10320 穿越火线 简单模拟
- Away3d 骨骼动画优化
- C#中字符转换问题详解
- [转] hibernate和ibatis的对比
- 在Ubuntu下如何切换到超级用户
- [翻译] 使用 Python 创建你自己的 Shell:Part II
- 用2个DATETIMEPICKER分别输入时间和日期,再合并成一个DATETIME类型
- 集齐所有机制的按键控制LED驱动
- 【工具】我的Eclipse使用习惯
- [翻译] FreeStreamer 在线流媒体播放
- 平衡二叉树AVL - 插入节点后旋转方法分析
- C语言实现---学生成绩管理系统
- Java Thread系列(六)volatile