poj 2115 C Looooops(扩展欧几里得)
来源:互联网 发布:java反射获取私有属性 编辑:程序博客网 时间:2024/05/18 02:09
也是比较基础的吧,根据题意可以列出式子:Cx+2^k * y=B-A,x为要循环的次数,用扩展欧几里得求解即可。
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<map>#include<queue>#include<set>#include<stack>#include<cmath>#include<vector>#define inf 0x3f3f3f3f#define Inf 0x3FFFFFFFFFFFFFFFLL#define eps 1e-9#define pi acos(-1.0)using namespace std;typedef long long ll;ll ext_gcd(ll a,ll b,ll &x,ll &y){ if(b==0) { x=1;y=0; return a; } ll d=ext_gcd(b,a%b,y,x); y-=a/b*x; return d;}int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); ll A,B,C,k,x,y,a,b,c,d; while(cin>>A>>B>>C>>k) { if(A==0&&B==0&&C==0&&k==0) break; k=(1LL)<<k; a=C;b=k;c=B-A; d=ext_gcd(a,b,x,y); if(c%d!=0) cout<<"FOREVER"<<endl; else { c/=d;x*=c;b/=d; x=(x%b+b)%b; cout<<x<<endl; } } return 0;}
0 0
- POJ 2115 C Looooops(扩展欧几里得)
- poj 2115 C Looooops(扩展欧几里得)
- poj-2115 C Looooops(扩展欧几里得)
- poj 2115 C Looooops (扩展欧几里得)
- POJ 2115 C Looooops 扩展欧几里得算法
- poj 2115 C Looooops 扩展欧几里得
- POJ - 2115 - C Looooops (扩展欧几里得)
- POJ 2115 C Looooops(扩展欧几里得)
- POJ 2115 C Looooops(扩展欧几里得)
- poj 2115 C Looooops 【扩展欧几里得】
- POJ 2115 C Looooops (扩展欧几里得)
- poj 2115 C Looooops (扩展欧几里得算法)
- POJ-2115-C Looooops(扩展欧几里得)
- C Looooops poj 2115 扩展欧几里得
- [poj 2115] C Looooops 扩展欧几里得
- poj 2115 C Looooops (扩展欧几里得)
- 【POJ】2115 - C Looooops(扩展欧几里得)
- poj 2115 C Looooops 扩展欧几里得算法
- linux开机自动选择所进入的系统
- 一个可以下载视频的网站
- SQL Server 存储过程
- 【python】爬虫教程大全
- Flash中flash包、fl包和mx包的区别
- poj 2115 C Looooops(扩展欧几里得)
- js javascript js控制分页打印,打印分页
- C#事件学习
- Django:ManyToManyField
- Groovy入门教程
- 彩色图像霍(哈)夫曼编码、解码
- 一些无聊时的关于技术设计的想法
- photoshop切片工具
- 《算法艺术与信息学竞赛》题目-提交方式对照表