POJ 2115 C Looooops 模线性方程(扩展欧几里得)
2012-02-18 20:46
423 查看
题解:转换一下。和青蛙那题差不多。
#include<iostream> #include<cmath> using namespace std; __int64 Egcd ( __int64 a, __int64 b, __int64 &x, __int64 &y ) { __int64 tmp, ret; if ( b == 0 ) { x = 1, b = 0; return a; } ret = Egcd ( b, a%b, x, y ); tmp = x, x = y, y = tmp - a / b * y; return ret; } int main() { __int64 A, B, C, K, x, y; while ( 1 ) { scanf("%I64d%I64d%I64d%I64d",&A,&B,&C,&K); if ( A+B+C+K == 0 ) break; __int64 M = (__int64)pow(2.0,K+0.0); __int64 a = C, b = M, c = B - A; __int64 d = Egcd ( a, b, x, y ); if ( c % d != 0 ) { printf("FOREVER\n"); continue; } x = (c*x/d)%(b/d); if ( x < 0 ) x += b/d; printf("%I64d\n",x); } return 0; }
相关文章推荐
- [ACM] POJ 2115 C Looooops (扩展欧几里得求解模线性方程)
- poj_2115 C Looooops(模线性方程+扩展欧几里得)
- POJ 2115 (模线性方程 -> 扩展欧几里得)
- POJ - 2115 C Looooops(扩展欧几里德求解模线性方程(线性同余方程))
- POJ 2115 C Looooops(扩展欧几里德 + 求解模线性方程)
- [poj 2115]C Looooops[扩展欧几里德][模线性方程]
- POJ2115——C Looooops(扩展欧几里德+求解模线性方程)
- 【模线性方程 && 扩展欧几里德】POJ - 2115 C Looooops
- 同余与扩展欧几里得解模线性方程——CLooooops(POJ 2115)
- 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(扩展欧几里得)
- [ACM] POJ 1061青蛙的约会(扩展欧几里得求模线性方程)
- poj 2115 C Looooops(模线性方程)
- POJ 2115 C Looooops (模线性方程)
- 【POJ】2115 - C Looooops(扩展欧几里得)