poj2115-C Looooops -线性同余方程
线性同余方程的模板题。和青蛙的约会一样。
#include <cstdio>
#include <cstring> #define LL long long using namespace std;
//A+n*C = B mod 2^k
//n*C = B-A mod 2^k LL A,B,C,MOD;
int k; LL ExGCD(LL a,LL b,LL &x,LL &y)
{
LL d,t;
if(b==)
{
x=;y=;
return a;
}
d = ExGCD(b,a%b,x,y);
t=x;x=y;y=t-a/b*y;
return d;
} int main()
{
while(scanf("%I64d%I64d%I64d%d",&A,&B,&C,&k) && (A||B||C||k))
{
LL x,y;
LL a=C,b=B-A;
MOD = 1LL<<k;
LL d = ExGCD(a,MOD,x,y);
if(b%d )
{
printf("FOREVER\n");
}
else
{
x=(x*(b/d))%MOD;
x=(x%(MOD/d)+MOD/d)%(MOD/d);
printf("%I64d\n",x);
}
}
}
poj2115-C Looooops -线性同余方程的更多相关文章
- POJ-2115-C Looooops(线性同余方程)
		
链接: https://vjudge.net/problem/POJ-2115 题意: A Compiler Mystery: We are given a C-language style for ...
 - POJ2115 C Looooops(线性同余方程)
		
无符号k位数溢出就相当于mod 2k,然后设循环x次A等于B,就可以列出方程: $$ Cx+A \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} ...
 - POJ2115:C Looooops(一元线性同余方程)
		
题目: http://poj.org/problem?id=2115 要求: 会求最优解,会求这d个解,即(x+(i-1)*b/d)modm;(看最后那个博客的链接地址) 前两天用二元一次线性方程解过 ...
 - POJ 2115  C Looooops (扩展欧几里德 + 线性同余方程)
		
分析:这个题主要考察的是对线性同余方程的理解,根据题目中给出的a,b,c,d,不难的出这样的式子,(a+k*c) % (1<<d) = b; 题目要求我们在有解的情况下求出最小的解,我们转 ...
 - POJ - 2115 C Looooops(扩展欧几里德求解模线性方程(线性同余方程))
		
d.对于这个循环, for (variable = A; variable != B; variable += C) statement; 给出A,B,C,求在k位存储系统下的循环次数. 例如k=4时 ...
 - 数论 - n元线性同余方程的解法
		
note:n元线性同余方程因其编程的特殊性,一般在acm中用的很少,这里只是出于兴趣学了一下 n元线性同余方程的概念: 形如:(a1*x1+a2*x2+....+an*xn)%m=b%m ...
 - POJ1061 青蛙的约会(线性同余方程)
		
线性同余方程$ ax \equiv b \pmod n$可以用扩展欧几里得算法求解. 这一题假设青蛙们跳t次后相遇,则可列方程: $$ Mt+X \equiv Nt+Y \pmod L$$ $$ (M ...
 - poj2115 C Looooops(exgcd)
		
poj2115 C Looooops 题意: 对于C的for(i=A ; i!=B ;i +=C)循环语句,问在k位存储系统中循环几次才会结束. 若在有限次内结束,则输出循环次数. 否则输出死循环. ...
 - 扩展欧几里得,解线性同余方程  逆元 poj1845
		
定理:对于任意整数a,b存在一堆整数x,y,满足ax+by=gcd(a,b) int exgcd(int a,int b,int &x,int &y){ ){x=,y=;return ...
 
随机推荐
- GIT 管理修改、删除文件
			
管理修改 现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就 ...
 - 控制反转IOC与依赖注入DI  -  理论篇
			
学无止境,精益求精 十年河东十年河西,莫欺少年穷 昨天是五一小长假归来上班的第一天,身体疲劳,毫无工作热情.于是就看看新闻,喝喝茶,荒废了一天 也就在昨天,康美同事张晶童鞋让我学习下IOC的理论及实现 ...
 - Libgdx学习记录28——创建Desktop程序
			
1.新建Java Project. 2.添加libs,添加相关的jar文件. 3. 在Project Build Path中,添加Reference. 4. 添加文件夹assets,并右键Build ...
 - 案例学python——案例三:豆瓣电影信息入库
			
闲扯皮 昨晚给高中的妹妹微信讲题,函数题,小姑娘都十二点了还迷迷糊糊.今天凌晨三点多,被连续的警报声给惊醒了,以为上海拉了防空警报,难不成地震,空袭?难道是楼下那个车主车子被堵了,长按喇叭?开窗看看, ...
 - CentOS 7.2:Failed to start IPv4 firewall with iptables
			
问题 系统是centos7.2,且已经安装了iptables服务,但是在执行启动命令后,却报了iptables服务无法正常启动的错误. 启动命令如下: systemctl start iptables ...
 - J-query extend()方法
			
1.如果没有冲突参数会弥在后面. 2.参数如果和前面的参数存在相同的名称,那么后面的会覆盖前面的参数值.
 - 利用阿里云的源yum方式安装Mongodb
			
今天在线上服务器上安装MongoDB,从Mongo官网直接下载链接,结果在下载时发觉速度慢的可怜.迫于无奈,只能找国内的镜像下载.这里选择阿里云的源进行安装,记录如下: 1)在/etc/yum.rep ...
 - 《Linux内核设计与实现》课本第四章学习总结
			
进程调度 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统. 多任务系统分为两种: 抢占式多任务:Linux提供了抢占式的多任务模式,由调度程序来决定什么时候停止一个进程的运行 ...
 - 《Linux课本》读书笔记 第四章
 - android开发之图表
			
在这里使用的插件为Mpchart,只以折线图为例.首先需要导入