循环次数:求for (variable = A; variable != B; variable += C)的循环次数,其中变量为k比特无符号整数。

4.1更加复杂的数学问题

模运算的世界

数论真是虐狗

k位无符号整数溢出会归零,所以问题其实是求模线性方程Cx = B – A (mod 2k)的最小解。于是参考《算法导论》P528的拓展欧几里得算法和P534的伪码:

就行了。

正如《算法导论》数论这章的前言所述,数论曾被认为是一门漂亮但却没什么大用处的纯数学学科,现在也是应用在密码学里。所以,我暂时没下定决心花时间在数论算法上面。

#include

typedef long long LL;

// return d = gcd(a, b) = ax + by

inline LL extended_euclid(const LL& a, const LL& b, LL &x, LL &y)

{

if (b == 0)

{

x = 1, y = 0;

return a;

}

LL d = extended_euclid(b, a % b, x, y);

LL x1;

x1 = x, x = y, y = x1 - a / b * y;

return d;

}

// return ax = b (mod n) 的最小解

inline LL modular_linear_equation_solver(const LL &a, const LL &b, const LL &n)

{

LL d, x, y;

d = extended_euclid(a, n, x, y);    // a 与 n 的最大公约数d

if (b % d)

return -1;

LL x0 = x * (b / d) % n + n;    // x0 * d 是 ax = b (mod n) 的一个解

return x0 % (n / d);            // ax = b (mod n) 的最小解

}

int main()

{

#ifndef ONLINE_JUDGE

freopen("in.txt", "r", stdin);

#endif

LL A, B, C, k;

while (~scanf("%lld%lld%lld%lld", &A, &B, &C, &k), A || B || C || k)

{

LL d = modular_linear_equation_solver(C, B - A, 1LL <

if (d == -1)

puts("FOREVER");

else

printf("%lld\n", d);

}

#ifndef ONLINE_JUDGE

fclose(stdin);

#endif

return 0;

}

14148990

Accepted

132K

0MS

1092B

2015-04-30 21:27:17

挑战程序设计竞赛是c语言编写的嘛,POJ 2115 C Looooops 题解《挑战程序设计竞赛》...相关推荐

  1. c语言程序设计阶乘输出,C语言编写10的阶乘,用C语言编程求10的阶乘

    导航:网站首页 > C语言编写10的阶乘,用C语言编程求10的阶乘 C语言编写10的阶乘,用C语言编程求10的阶乘 匿名网友: 思路:先定义一个函数求一个数的阶乘,接着依次从1到10调用该函数就 ...

  2. 机器人程序用c 语言编写,RobotC与机器人程序设计

    RobotC与机器人程序设计 作 者:郑剑春 编 出版时间:2013 丛编项:ROBOTC中文培训教材·青少年科技创新丛书 内容简介 被誉为机器人竞赛的首选编程语言ROBOTC,由卡耐基梅隆大学机器人 ...

  3. POJ 3713 Transferring Sylla​ 题解 《挑战程序设计竞赛》

    为什么80%的码农都做不了架构师?>>>    POJ 3713 Transferring Sylla三连通图:判断一个无向图是否三连通?3.5借助水流解决问题的网络流最大流刷个题报 ...

  4. POJ 1418 Viva Confetti 题解 《挑战程序设计竞赛》

    为什么80%的码农都做不了架构师?>>>    POJ 1418 Viva Confetti礼花:Confetti 是一些大小不一的彩色圆形纸片,人们在派对上.过节时便抛洒它们以示庆 ...

  5. 计算机编写的程序具有可移植性,用高级程序设计语言编写的程序()。A.计算机能直接执行B.可读性和可移植性好C.可读性差但执行效率...

    用高级程序设计语言编写的程序().A.计算机能直接执行B.可读性和可移植性好C.可读性差但执行效率 更多相关问题 有些消费函数表明,收入和消费是负相关的.() 地球上陆地的面积约为148 000 00 ...

  6. c语言编写的每个函数都可以进行独立的编译,2017年辽宁师范大学计算机与信息技术学院836C语言程序设计考研冲刺密押题...

    一.选择题 1. 以下叙述中错误的是( ). A.C 语言编写的函数源程序,其文件名后缀可以是.C B.C 语言编写的函数都可以作为一个独立的源程序文件 C.C 语言编写的每个函数都可以进行独立的编译 ...

  7. 用C语言编写从A到Z随机步法,实用C语言程序设计教程1C语言学习基础ppt71.ppt

    实用C语言程序设计教程1C语言学习基础ppt71 C语言程序设计 - 第1章 C语言学习基础 第1章 开篇 --C语言学习基础 --目标既不是精确的,也不是预先设定的,目标应是一般性的.生成性的,从而 ...

  8. c语言程序设计实验教学,C语言程序设计实验教学改革研究

    语言程序设计是目前各高校计算机及其相关专业的一门基础课程,也是其它工科专业学生必修的计算机基础课程之一,是学生学习程序设计的入门课程.同时,该课程是一门应用性很强的学科.随着计算机技术飞速发展,计算机 ...

  9. python教材答案程序设计导论_程序设计导论:Python语言实践

    前 言Introduction to Programming in Python: An Interdisciplinary Approach21世纪以前的教育基础是"读.写和算术" ...

  10. python叫什么语言-python是什么语言编写的

    python是什么语言编写的? python是C语言编写的. 自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程. Python的创始人为荷兰人吉多·范 ...

最新文章

  1. Java中实现接口与继承的区别
  2. HttpClient basic authentication
  3. 基于ESP32的竞赛裁判系统功能调试-硬件修改建议
  4. dataset for person re-id
  5. SAP系统管理员的工作
  6. JRebel: ERROR Failed to obtain seat. Unable to connect to license server. Check
  7. 用计算机如何计算投资回收期,动态投资回收期怎么算的?
  8. 3 idiots的台词
  9. (一)android为什么需要recovery升级?
  10. Spring 源码--Bean 实例化
  11. Windows+iPad扩展屏幕-随航功能
  12. 射频识别系统及WMS仓库管理系统功能介绍
  13. 在word的文字右上角添加符号(插入上标)?
  14. windows下两种方法通过cmd进入指定目录
  15. 面向对象分析与设计01 - 关键抽象
  16. 世界上五个最不务正业的科学家!看完三观都碎了…
  17. 深化测试用例的覆盖率
  18. 07-html标签图文详解(二)
  19. 判断素数———两种高效算法
  20. python index out of bounds_错误:索引2超出大小为1的轴0的界限

热门文章

  1. Delphi 2007 TIDHttp HTTPS 出现Error connecting with SSL
  2. CAD转GIS工具软件下载
  3. html音频波纹播放器插件,Wavesurfer.js音频播放器插件的使用教程
  4. 爱普生Epson L1118/1119打印机清零步骤
  5. \opencv\build\x86下的vc6、vc7、vc8、vc9、vc10、vc11、vc12、vc14、vc15是什么意思?
  6. matlab数字图像处理灰度变换ppt课件,数字图像处理 灰度变换.ppt
  7. Linux打开软盘镜像,怎样在Linux下制作软盘和光盘镜像
  8. smart210 资源
  9. cad设计绘图软件:AutoCAD 2020 Mac版
  10. 非参数统计的Python实现—— Wilcoxon 符号秩检验