2016acmicpc现场赛大连赛区D题

由原式可假设:k*x1+k*x2=a;k*x1*x2=b;

a=(x1+x2)*k;b=x1*x2*k;

得gcd(a,b)=k;很多人可能不懂这是为什么,这里我给出证明及结论

结论:x1与x2互质,则x1+x2与x1*x2互质

证明:反证法,假设x1+x2与x1*x2不互质,则意味着x1*x2与x1+x2有公因子,设为m,x1*x2=k1*m;x1+x2=k2*m;可以得出式子:x1=k1/x2*m;x2=(k2-x1)*m;可以看出,这样x1与x2都有一个公因子m,所以与一开始的条件x1与x2互质矛盾,所以x1*x2与x1+x2是互质的。

OK,证明完成,则原式a=(x1+x2)*k;b=x1*x2*k;k=gcd(a,b),这样2个方程,2个未知数,k,a,b已知,x1,x2可通过O(1)得解。

OK,这样基本完成了,再短短十几行代码,就能切D。


          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值