POJ 2115 C Looooops
来源:互联网 发布:开淘宝网去哪找货源 编辑:程序博客网 时间:2024/06/03 10:39
http://poj.org/problem?id=2115
推出同余方程:C*x - 2^k*y = B -A直接使用扩展gcd求解!
#include <math.h>#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;LL exGcd(LL a, LL b, LL &x, LL &y){ if(b == 0){ x = 1; y = 0; return a; } LL gcd = exGcd(b, a%b, y, x); y -= (a/b)*x; return gcd;}int main(){ LL A,B,C,k; while(scanf("%lld%lld%lld%lld", &A,&B,&C,&k) == 4){ if(!A && !B && !C && !k) break; if(C == 0){ if(A == B) cout << "0" << endl; else cout << "FOREVER" << endl; continue; } LL a = C, b = -(1ll << k), c = B - A, x, y; LL gcd = exGcd(a, b, x, y); if(c % gcd){ cout << "FOREVER" << endl; continue; } x *= c/gcd; if(b / gcd < 0) b = -b; x %= b/gcd; while(x < 0) x += b/gcd; cout << x << endl; } //system("pause"); 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
- POJ 2115 C Looooops
- POJ 2115 C Looooops
- POJ 2115 C Looooops
- POJ 2115 C Looooops
- POJ 2115--C Looooops
- iText导出pdf、word、图片
- 剑指offer系列源码-二叉树的镜像
- kinect体感切水果
- CentOS 6.4下编译安装MySQL 5.6.14
- tp_tftp_nfs三种文件传输协议的区别
- POJ 2115 C Looooops
- 死锁以及死锁产生的原因及条件
- 文档处理 替换
- ios及android两个平台下x264编译脚本
- 如何用Python中的chardet去检测字符编码类型
- gdb基本操作
- linux根目录下各文件夹 的内容
- UITabBarController使用
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能 .