POJ 2115 C Looooops <扩展欧几里得算法>
来源:互联网 发布:手机查看淘宝注册时间 编辑:程序博客网 时间:2024/06/12 01:04
题目:传送门
题目大意:给出A,B,C,k,求循环for(varible=A;varible!=B;varible+=C)中的语句会执行多少次,注意数字是k-bit的,也就是说当数字大于
分析:设执行
代码:
#include <iostream>#include <cmath>#include <cstring>#include <string>using namespace std;__int64 EXTENDED_EUCLID(__int64 a,__int64 b,__int64& x,__int64& y){ if(b==0){ x=1; y=0; return a; } else{ __int64 d=EXTENDED_EUCLID(b,a%b,y,x); y-=a/b*x; return d; }}int main(){ __int64 A,B,C,k; while(cin>>A>>B>>C>>k,A||B||C||k){ __int64 b=B-A; __int64 n=(__int64)1<<k; __int64 a=C; __int64 x,y; __int64 d=EXTENDED_EUCLID(a,n,x,y); if(b%d) cout<<"FOREVER"<<endl; else{ __int64 xx=x*b/d%n,m=n/d; __int64 ans=(xx%m+m)%m; cout<<ans<<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/HOJ 1787 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(扩展欧几里得)
- PostgreSQL Java tutorial
- PHP 处理 JSON
- 外观模式(Facade Pattern)
- JavaScript的基本概念及程序设计基础
- 浅析C/S、B/S与P2P架构
- POJ 2115 C Looooops <扩展欧几里得算法>
- Java 处理 JSON
- 20170725
- MyBatis配置文件
- ArrayList和LinkedList区别
- Java中的final修饰符
- 通用模板
- 实用的 Python 之 feedparser
- Alternative Thinking(CodeForces