题目链接:https://cn.vjudge.net/contest/276376#problem/B

题目大意:for( int  i= A ; i != B; i+ = c ),然后给你A,B,C,K,前三个是for循环里面的变量,K指的是每一次ABC三个数都对2^k进行取余,然后问你要使得这个循环停止,最少的循环次数,如果是一个死循环,就输出"FOREVER".

具体思路:和我之前写的那一篇博客思路差不多,证明过程直接上图。

一开始没有注意到B,等号右边应该是B-A,而不是B,以后注意下(不过结果正负的情况下,只有在后b调就可以了)。

AC代码:

 #include<iostream>
#include<stack>
#include<cmath>
#include<queue>
#include<stdio.h>
#include<algorithm>
using namespace std;
# define ll long long
const int maxn = 1e5+;
ll quickpow(ll ti)
{
ll ans=;
ti--;
ll tmp=;
while(ti)
{
if(ti&)
ans=ans*tmp;
tmp*=tmp;
ti>>=;
}
return ans;
}
ll xo,yo;
ll exgcd(ll a,ll b)
{
if(b==)
{
xo=;
yo=;
return a;
}
ll gcd=exgcd(b,a%b);
ll tmp=yo;
yo=xo-a/b*yo;
xo=tmp;
return gcd;
}
int main()
{
ll a,b,c,k;
while(~scanf("%lld %lld %lld %lld",&a,&b,&c,&k)&&(a+b+c+k))
{
ll tmp=quickpow(k);
ll t=exgcd(c,tmp);
if((b-a)%t)
printf("FOREVER\n");
else
{
ll tmp1=tmp/t;
printf("%lld\n",((b-a)*xo/t%tmp1+tmp1)%tmp1);
}
}
return ;
}

B - C Looooops POJ - 2115 (扩展欧几里得)的更多相关文章

  1. poj 2115 扩展欧几里得

    题目链接:http://poj.org/problem?id=2115 题意: 给出一段循环程序,循环体变量初始值为 a,结束不等于 b ,步长为 c,看要循环多少次,其中运算限制在 k位:死循环输出 ...

  2. poj 2891 扩展欧几里得迭代解同余方程组

    Reference: http://www.cnblogs.com/ka200812/archive/2011/09/02/2164404.html 之前说过中国剩余定理传统解法的条件是m[i]两两互 ...

  3. poj 2142 扩展欧几里得解ax+by=c

    原题实际上就是求方程a*x+b*y=d的一个特解,要求这个特解满足|x|+|y|最小 套模式+一点YY就行了 总结一下这类问题的解法: 对于方程ax+by=c 设tm=gcd(a,b) 先用扩展欧几里 ...

  4. poj 1061 扩展欧几里得解同余方程(求最小非负整数解)

    题目可以转化成求关于t的同余方程的最小非负数解: x+m*t≡y+n*t (mod L) 该方程又可以转化成: k*L+(n-m)*t=x-y 利用扩展欧几里得可以解决这个问题: eg:对于方程ax+ ...

  5. poj 1061(扩展欧几里得定理求不定方程)

    两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特 ...

  6. The Balance POJ 2142 扩展欧几里得

    Description Ms. Iyo Kiffa-Australis has a balance and only two kinds of weights to measure a dose of ...

  7. POJ 1061 扩展欧几里得

    #include<stdio.h> #include<string.h> typedef long long ll; void gcd(ll a,ll b,ll& d, ...

  8. poj2115 C Looooops——扩展欧几里得

    题目:http://poj.org/problem?id=2115 就是扩展欧几里得呗: 然而忘记除公约数... 代码如下: #include<iostream> #include< ...

  9. C Looooops(扩展欧几里得+模线性方程)

    http://poj.org/problem?id=2115 题意:给出A,B,C和k(k表示变量是在k位机下的无符号整数),判断循环次数,不能终止输出"FOREVER". 即转化 ...

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

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

随机推荐

  1. PAT甲题题解-1075. PAT Judge (25)-排序

    相当于是模拟OJ评测,这里注意最后输出:1.那些所有提交结果都是-1的(即均未通过编译器的),或者从没有一次提交过的用户,不需要输出.2.提交结果为-1的题目,最后输出分数是03.某个题目从没有提交过 ...

  2. [2017BUAA软工助教]个人得分总表(至alpha结束)

    一.表 学号 第0次 week1 week2 week3 个人项目 附加1 结对项目 附加2 a团队 a团队得分 a贡献分 总分(不计) 总分(记) 15061119 7 9.5 12 9 45.75 ...

  3. 查询过的问题关于HTML的问题

    一.Bootstrap字体图标(Glyphicons) http://www.runoob.com/bootstrap/bootstrap-glyphicons.html 二.Jquery 实现 “下 ...

  4. canvas实现五子棋界面

    1.获取canvas画布 var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); ...

  5. Beta 冲刺 七

    团队成员 051601135 岳冠宇 031602629 刘意晗 031602248 郑智文 031602330 苏芳锃 031602234 王淇 项目进展 岳冠宇 昨天的困难 换了种方法写了搜索栏, ...

  6. OneZero第二周第五次站立会议(2016.4.1)

    会议时间:2016年4月1日 会议成员:冉华,张敏,夏一鸣.(王请假). 会议目的:汇报前一天工作,会议成员评论. 会议内容: 1.前端,由夏,张负责汇报,完成前端功能,待命. 2.数据逻辑控制,由王 ...

  7. 【刷题】LOJ 6121 「网络流 24 题」孤岛营救问题

    题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂,但幸好麦克得到了迷宫的地形图.迷宫的外形是一个长方形 ...

  8. HGOI20180817 (NOIP模拟Day1 task)

    HGOI自测 初测:150=80+20+50 rank1~rank3(并列3个rank1,所以我是rank3 qwq) 今日分突然想简约 CF359A Table https://www.luogu. ...

  9. jQuery源码之 empty与html('')的区别

    empty: function() { var elem, i = 0; for ( ; (elem = this[i]) != null; i++ ) { // Remove element nod ...

  10. bzoj3114 LCM Pair Sum

    题意:以质因数分解的方式给定n,求所有满足:lcm(a, b) = n的无序数对的价值和.其中(a, b)的价值为a + b 解: 定义首项为a,公比为q,项数为n的等比数列的和为getQ(a, q, ...