POJ2115 C Looooops(线性同余方程)
无符号k位数溢出就相当于mod 2k,然后设循环x次A等于B,就可以列出方程:
$$ Cx+A \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} $$
最后就用扩展欧几里得算法求出这个线性同余方程的最小非负整数解。
1 #include<cstdio> 2 #include<cstring> 3 #define mod(x,y) (((x)%(y)+(y))%(y)) 4 #define ll long long 5 ll exgcd(ll a,ll b,ll &x,ll &y){ 6 if(b==0){ 7 x=1; y=0; 8 return a; 9 } 10 ll d=exgcd(b,a%b,x,y); 11 ll t=y; 12 y=x-a/b*y; 13 x=t; 14 return d; 15 } 16 ll MLES(ll a,ll b,ll n){ 17 ll x,y; 18 ll d=exgcd(a,n,x,y); 19 if(b%d) return -1; 20 return mod(x*(b/d),n/d); 21 } 22 int main(){ 23 ll a,b,c,k; 24 while(~scanf("%lld%lld%lld%lld",&a,&b,&c,&k) && (a||b||c||k)){ 25 k=1LL<<k; 26 ll res=MLES(c,b-a,k); 27 if(res==-1) puts("FOREVER"); 28 else printf("%lld\n",res); 29 } 30 return 0; 31 }
转载于:https://www.cnblogs.com/WABoss/p/5180434.html
POJ2115 C Looooops(线性同余方程)相关推荐
- POJ 2115C Looooops[一元线性同余方程]
一元线性同余方程 定义: $a$,$b$是整数,$m$是正整数,形如 $ax\equiv b\,(mod\, m)$ 且$x$是未知数的同余式称作一元线性同余方程. 对于方程$ax\equiv b\, ...
- 数论 —— 线性同余方程
[概念] 1.不定方程:未知数的个数多于方程个数,且未知数受到某些限制(如要求是整数)的方程. 2.同余方程 设函数 ,则称:是关于模 m 的同余方程 3.线性:方程的未知数次数是一次 4.线性同余方 ...
- 求解线性同余方程--扩展欧几里得
资料来源:https://blog.csdn.net/ //求解ax=b(mod m) 返回0为无解,否则返回gcd(a,m)个mod m意义下的解,用X[]存 int mod(int a, int ...
- POJ1061 青蛙的约会(线性同余方程)
线性同余方程$ ax \equiv b \pmod n$可以用扩展欧几里得算法求解. 这一题假设青蛙们跳t次后相遇,则可列方程: $$ Mt+X \equiv Nt+Y \pmod L$$ $$ (M ...
- 数论 —— 线性同余方程组与中国剩余定理
[线性同余方程组] 由若干个线性同余方程构成的线性方程组. 例如: 其解法最早由我国<孙子算经>给出,因此解法称为"孙子定理",又叫"中国剩余定理" ...
- 『线性同余方程和中国剩余定理』
更新了\(Ex-CRT\)的内容 线性同余方程 定义 给定整数\(a,b,m\),对于形如\(ax\equiv b(mod\ m)\)的同余方程我们称之为一次同余方程,即线性同余方程. 解线性同余方程 ...
- 扩展欧几里得,解线性同余方程 逆元 poj1845
定理:对于任意整数a,b存在一堆整数x,y,满足ax+by=gcd(a,b) int exgcd(int a,int b,int &x,int &y){if(b==0){x=1,y=0 ...
- 线性同余方程和矩阵乘法
目录 线性同余方程 1.同余方程 2.青蛙的约会 3.最幸运的数字 4.曹冲养猪 矩阵乘法 1.斐波那契前 n 项和 线性同余方程 用扩展欧几里得算法来求线性同余方程 ax+by=1 则解除的x,y有 ...
- 数论学习之(一):一元线性同余方程和二元一次不等式
看(ACM-ICPC程序设计系列)<数论及应用>第一章,讲到扩展欧几里德算法时,讲到POJ上的一个题目:POJ1061,看了很久也没看懂,可能是数学基础太差了吧! 还好的是我把不懂的地方跳 ...
最新文章
- python3+opencv生成不规则黑白mask
- XDU 翼讯账号算法
- 训练图像预处理函数功能(paddle)
- 阿里云性能测试服务 PTS 新面貌 - 压测协议、施压能力全新升级
- java中的json_java中的json使用
- 【HDU - 6237】A Simple Stone Game(贪心,思维,素因子分解,数学)
- 在switch语句中使用字符串以及实现原理
- 2 Linux磁盘管理
- String和StringBuffer与StringBuilder的区别
- 静态方和和实例方法的区别
- fiddler 的AutoRespoder的使用(手动添加测试桩)
- Android 基础控件与线性布局
- 匹配滤波器的仿真——原理说明与仿真
- 2021年网络工程师考试大纲
- 项目实战之微信、微信公众号登陆和支付调起
- 智慧遂川城管建设项目-容灾备份一体机
- linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux...
- 什么是低代码平台 low-code?
- JavaScript在表格中实现九九乘法表
- 从200K/s到2M/s,只差这篇文章——使用ProxyeeDown加速百度云盘下载速度
热门文章
- python程序会监控错误的语句_python装饰器实现对异常代码出现进行自动监控
- linux强制回收内存,Linu系统cache强制回收
- acquire方法_Python锁类| 带有示例的acquire()方法
- Java——集合(模拟斗地主洗牌和发牌进行排序)
- 面向对象 (接口 Interface)
- android 队列上传图片,话说android端七牛图片上传
- 最强鸿蒙系统txt_鸿蒙系统升级时间确认,哪些手机有望成为首批“宠儿”?
- java ecdh秘钥交换_DH密钥交换和ECDH原理(转)
- uva 11269——Setting Problems
- 一般筛法和快速线性筛法求素数 求素数的一点总结