http://poj.org/problem?id=2115

k位储存特点,一旦溢出,那么就到第二个循环开始返回0重新计数。问题实际转化成a+cx=b(mod 2^k)跑多少圈能够重合。因为是k位无符号,所以直接就是2^k次方,0~2^k-1。刚好覆盖模的范围

 1 #include<iostream>
2 #include<cstdio>
3 #include<math.h>
4 #include<algorithm>
5 using namespace std;
6 typedef unsigned long long ll;
7 ll ex_gcd(ll a, ll b, ll &x,ll &y)
8 {
9 if(!b){x=1,y=0;return a;}
10 ll d=ex_gcd(b,a%b,x,y);
11 ll tmp=x;
12 x=y,y=tmp-a/b*y;
13 return d;
14 }
15 int main()
16 {
17 ll a,b,c,k,x,y;
18 while(~scanf("%llu%llu%llu%llu",&a,&b,&c,&k),(a+b+c+k))
19 {
20 ll tmp=c;//k位无符号
21 c=b-a;a=tmp;b=(ll)1<<k;
22 ll d=ex_gcd(a,b,x,y);
23 ll t=b/d;
24 if(c%d!=0) cout<<"FOREVER\n";
25 else
26 {
27 x=(x*c/d%t+t)%t;
28 cout<<x<<'\n';
29 }
30 }
31 return 0;
32 }

POJ2115C Looooops的更多相关文章

  1. poj2115-C Looooops(扩展欧几里德算法)

    本题和poj1061青蛙问题同属一类,都运用到扩展欧几里德算法,可以参考poj1061,解题思路步骤基本都一样.一,题意: 对于for(i=A ; i!=B ;i+=C)循环语句,问在k位存储系统中循 ...

  2. poj2115-C Looooops -线性同余方程

    线性同余方程的模板题.和青蛙的约会一样. #include <cstdio> #include <cstring> #define LL long long using nam ...

  3. POJ1061:青蛙的约会+POJ2115C Looooops+UVA10673Play with Floor and Ceil(扩展欧几里得)

    http://poj.org/problem?id=1061 第一遍的写法: #include <iostream> #include <stdio.h> #include & ...

  4. POJ-2115-C Looooops(线性同余方程)

    链接: https://vjudge.net/problem/POJ-2115 题意: A Compiler Mystery: We are given a C-language style for ...

  5. POJ2115 C Looooops[扩展欧几里得]

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 24355   Accepted: 6788 Descr ...

  6. POJ 2115 C Looooops

    扩展GCD...一定要(1L<<k),不然k=31是会出错的 ....                        C Looooops Time Limit: 1000MS   Mem ...

  7. poj 2115 Looooops

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23637   Accepted: 6528 Descr ...

  8. C Looooops(扩展欧几里得)

    C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20128 Accepted: 5405 Descripti ...

  9. POJ2115——C Looooops(扩展欧几里德+求解模线性方程)

    C Looooops DescriptionA Compiler Mystery: We are given a C-language style for loop of type for (vari ...

随机推荐

  1. 一个超简单的Microsoft Edge Extension

    这个比微软官网上的例子简单很多,适合入门.总共4个文件: https://files.cnblogs.com/files/blogs/714801/cet6wordpicker.zip 36KB 1. ...

  2. 30个类手写Spring核心原理之AOP代码织入(5)

    本文节选自<Spring 5核心原理> 前面我们已经完成了Spring IoC.DI.MVC三大核心模块的功能,并保证了功能可用.接下来要完成Spring的另一个核心模块-AOP,这也是最 ...

  3. shell脚本 微信/钉钉验证登录服务器

    一.简介 登录用户需要二次验证码进行验证 可以配合 监控用户登录,发送通知给企业微信/钉钉 来使用 脚本放到/etc/profile.d/ 目录,登录的时候自动触发 二.微信脚本 1.需要修改Crop ...

  4. Notepad++ 常用功能:批量取消替换换行、强制刷新数据

    批量取消替换换行 换行批量替换成空格 Ctrl+F 打开查找替换窗口,使用:\r\n 替换成 空格,全部替换 强制刷新数据源,重新加载数据 快捷键:Ctrl+R 或者 Alt+F 然后 L 或者点击菜 ...

  5. nim_duilib(10)之slider、progress and circleprogress

    introduction 更多控件用法,请参考 here 和 源码. 本文的代码基于这里 本文将介绍3个控件: slider,progress和circleprogress.具体的用法,请参考源码提供 ...

  6. 【LeetCode】445. Add Two Numbers II 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 先求和再构成列表 使用栈保存节点数字 类似题目 日期 ...

  7. 【剑指Offer】包含min函数的栈 解题报告

    [剑指Offer]包含min函数的栈 解题报告 标签(空格分隔): 牛客网 题目地址:https://www.nowcoder.com/questionTerminal/beb5aa231adc45b ...

  8. Soldier and Traveling

    B. Soldier and Traveling Time Limit: 1000ms Memory Limit: 262144KB 64-bit integer IO format: %I64d   ...

  9. 1083 - Histogram

    1083 - Histogram   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 64 MB A hist ...

  10. 分布式(CAP)

    1. Consistency  ------->C---------->一致性[写操作之后的读操作,必须返回该值] 2. Availability-------->A-------- ...