专栏文章

数论

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip9ogtq
此快照首次捕获于
2025/12/03 08:26
3 个月前
此快照最后确认于
2025/12/03 08:26
3 个月前
查看原文

P5656 【模板】二元一次不定方程 (exgcd)

给定不定方程 ax+by=cax+by=c 若该方程无整数解,输出 1-1
若该方程有整数解,且有正整数解,则输出其正整数解的数量,所有正整数解中 xx 的最小值,所有正整数解中 yy 的最小值,所有正整数解中 xx 的最大值,以及所有正整数解中 yy 的最大值。
若方程有整数解,但没有正整数解,你需要输出所有整数解xx 的最小正整数值, yy 的最小正整数值。
正整数解即为 x,yx, y 均为正整数的解,0\boldsymbol{0} 不是正整数
整数解即为 x,yx,y 均为整数的解。
xx 的最小正整数值即所有 xx 为正整数的整数解中 xx 的最小值,yy 同理。
【数据范围】
对于 100%100\% 的数据,1T2×1051 \le T \le 2 \times {10}^51a,b,c1091 \le a, b, c \le {10}^9
先求出这个方程的解,用扩展欧几里得。 ax0+by0=gcd(a,b)ax_0+by_0=\gcd(a, b) 通过等式变换得到另一组特解。 x1=x0×cgcd(a,b)x_1=x_0\times\frac{c}{\gcd(a,b)} y1=y0×cgcd(a,b)y_1=y_0\times\frac{c}{\gcd(a,b)} 考虑寻找一组通解,设 rQr\in \mathbb{Q}。则有: a(x1+rb)+b(y1ra)=ca(x_1+rb)+b(y_1-ra)=c 通解需保证为整数,即 {ra,rb}Z\{ra,rb\}\in\mathbb{Z}
r=1gcd(a,b)r=\frac{1}{\gcd(a, b)} 时,rararbrb 的值最小,即所有通解之差都不会小于它们,记 rx=agcd(a,b),ry=agcd(a,b)r_x=\frac{a}{\gcd(a, b)},r_y=\frac{a}{\gcd(a, b)}

评论

0 条评论,欢迎与作者交流。

正在加载评论...