首页 > 其他 > 详细

题解 CF7C Line

时间:2019-09-01 10:18:10      阅读:61      评论:0      收藏:0      [点我收藏+]

虽然我在洛谷上没过

技术分享图片

但是,我在CF上过了(滑稽

技术分享图片

题目大意

给方程 \(Ax+By+C=0\).其中\(A\)\(B\)\(C\)为已知,求\(x\)\(y\)

\(Idea\)

拓展欧几里得算法的模板题.

该算法求出线性方程\(Ax + By = gcd(A, B)\)

然后,这个方程可进行转换:

\[Ax + By = gcd(A, B)\]

\[\to Ax + By = -\frac{C}{z}, -\frac{C}{z}= gcd(A, B)\]

\[\to Ax\ast z + By\ast z = C.\]

其中\(x\), \(y\)可以通过拓展欧几里得算法求出,

然后,我们只需要求出\(z\), 而\(z=-\frac{C}{gcd(A,B)}\);

所以, 最终答案\(x=x\ast -\frac{C}{gcd(A,B)}\) , \(y=y\ast -\frac{C}{gcd(A,B)}\);
_____
以下给出拓展欧几里得的模板

inline int ecgcd(int a,int b,int &x,int &y){
    if(!b) {x=1; y=0; return a;}
    int d=exgcd(b,a%b,x,y);
    int z=x; x=y; y=z-y*(a/b);
    return d;
}

\(AC\) 程序自己写

题解 CF7C Line

原文:https://www.cnblogs.com/cbyyc/p/11441309.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!