被虐得很惨的一道题,WA了无数次,根据题意推出 C * x + (2 ^ k) * y = B - A,用拓展欧几里德求出x的最小值。如果无解则是死循环!

/*Accepted    164K    0MS    C++    882B    2012-07-19 12:03:12*/#include<cstdio>
#include<cstring>
#include<cstdlib>
#define LL long longLL extgcd( LL a, LL b, LL &x, LL &y)
{if( b == 0) { x = 1; y = 0; return a;}LL d = extgcd( b, a % b, x, y);LL t = x;x = y;y = t - a / b * y;return d;
}int main()
{LL a, b, c, e, n;int k;LL x, y;while( scanf("%lld%lld%lld%d", &a, &b, &c, &k) == 4){if( a == 0 && b == 0 && c == 0 && k == 0)break;n = 1LL << k ;e = extgcd( c, n, x, y);LL t = b - a ;if( t % e != 0){printf( "FOREVER\n");}else{x = t / e * x; // x = ((t / e) * x) % n + nx = ( x % (n / e) + (n / e)) % (n / e); //x = x % (n / e);printf( "%lld\n", x) ;}}return 0;
}

转载于:https://www.cnblogs.com/Yu2012/archive/2012/07/19/2599039.html

POJ 2115 C Looooops相关推荐

  1. POJ 2115 C Looooops (扩展欧几里德解同余方程 Ax = B(mod C) )

    题目链接:http://poj.org/problem?id=2115 题目大意:C语言循环语句,初试i赋值A,每次加C,并且模2^k,当i == B时终止,问终止循环次数,或者无法终止. 思路: 思 ...

  2. poj 2115 C Looooops(扩展欧几里德算法)

    题意: 对于for(i=A ; i!=B ;i+=C)循环语句,问在k位存储系统中循环几次才会结束. 比如:当k=4时,存储的数 i 在0-15之间循环.(本题默认为无符号) 若在有限次内结束,则输出 ...

  3. POJ - 2115 C Looooops(扩展欧几里得)

    题目链接:点击查看 题目大意:执行一个循环: for (variable = A; variable != B; variable += C) statement; 问在2的k次幂的范围内最少需要执行 ...

  4. POJ 2115 C Looooops(扩展欧几里得)

    辗转相除法(欧几里得算法) 时间复杂度:在O(logmax(a, b))以内 int gcd(int a, int b) {if (b == 0) return a;return gcd(b, a % ...

  5. C Looooops POJ - 2115

    C Looooops POJ - 2115 题目: A Compiler Mystery: We are given a C-language style for loop of type state ...

  6. C Looooops POJ - 2115 (exgcd)

    一个编译器之谜:我们被给了一段C++语言风格的循环 for(int i=A;i!=B;i+=C) 内容; 其中所有数都是k位二进制数,即所有数时膜2^k意义下的.我们的目标时球出 内容 被执行了多少次 ...

  7. POJ 2115 模线性方程 ax=b(mod n)

    /* (x*c+a)%(2^k)==b →(x*c)%(2^k)==b-a 满足定理: 推论1:方程ax=b(mod n)对于未知量x有解,当且仅当gcd(a,n) | b.推论2:方程ax=b(mo ...

  8. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  9. kuangbin带你飞专题合集

    题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...

最新文章

  1. 转载:如何避免代码中的if嵌套
  2. Mac 下GitHub 访问慢解决方案
  3. 计算机的硬盘和光盘数,硬盘和光盘属于什么媒体
  4. UA MATH575B 数值分析下IV 带约束的优化
  5. windows 10安装gensim、nltk
  6. 西电开源社区Ubuntu 10.04软件源
  7. 绝美自然风光风景壁纸,心旷必然神怡
  8. ueditor关闭元素
  9. manjaroLinux下安装mysql时初始化mysql出错解决办法
  10. [NOI2006]神奇口袋
  11. 浅谈EM算法的两个理解角度
  12. GUI版Hex合并和Hex转换工具-HexMergeTool 取代hex2bin命令行工具
  13. 深信服环境SCSA环境遇到的问题(无法访问网站)
  14. 嵌入式 Linux 按键驱动
  15. c4d怎么导入图片描图建模_巧用C4D的参考图学习角色人物建模(躯干)
  16. 2021南京扬子中学高考成绩查询,2021年南京高考各高中成绩及本科升学率数据排名及分析...
  17. 速轩三维 - 手持式激光三维扫描仪
  18. 移动硬盘损坏怎么恢复数据?对症恢复更有效
  19. 陈赫孙艺洲携手《你的带货王2020》PK带货 玛莎拉蒂究竟花落谁家?
  20. python求周长_计算任何三角形的周长[python 3]

热门文章

  1. 使用Leopard Jdbc
  2. 几款***常用小工具的使用说明
  3. [MongoDB]db.serverStatus()命令详解
  4. Kotlin替换Dagger2/Hilt的依赖注入框架--Koin。
  5. 倒计时的CountDownTimer
  6. android 布局设置背景的透明度
  7. android 如何使用android:supportsRtl属性
  8. 魅族8.0系统手机最完美激活xposed框架的步骤
  9. Mybatis与Spring整合之配置文件方式
  10. 【转】SSL/TLS/WTLS协议原理