POJ1061 青蛙的约会(线性同余方程)
2024-10-14 18:45:42
线性同余方程$ ax \equiv b \pmod n$可以用扩展欧几里得算法求解。
这一题假设青蛙们跳t次后相遇,则可列方程:
$$ Mt+X \equiv Nt+Y \pmod L$$
$$ (M-N)t \equiv Y-X \pmod L$$
于是就构造出一个线性同余方程,即可对t求解,解出最小非负整数解。
#include<cstdio>
#include<cstring>
using namespace std;
#define mod(x,y) (((x)%(y)+(y))%(y))
#define lld long long
//a*x+b*y=gcd(a,b)
lld exgcd(lld a,lld b,lld &x,lld &y){
if(b==){
x=; y=;
return a;
}
lld d=exgcd(b,mod(a,b),x,y);
lld t=y;
y=x-a/b*y;
x=t;
return d;
}
//ax¡Ôb (mod n)
lld MLES(lld a,lld b,lld n){
lld x,y;
lld d=exgcd(a,n,x,y);
if(b%d) return -;
return mod(x*(b/d),n/d);
} int main(){
lld x,y,m,n,l;
scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l);
lld res=MLES(m-n,y-x,l);
if(res==-) puts("Impossible");
else printf("%lld",res);
return ;
}
最新文章
- 滑动的scrollowview的导航渐变
- VS2010中的查找和替换中正则的使用
- 设计模式可复用面向对象软件设计基础之对象创建型模式—ABSTRACT FACTORY( 抽象工厂)
- 怎样测试TCP&;UDP端口
- jmeter的逻辑控制器
- Android loading进度条使用简单总结
- Oracle Linux 6.3下安装Oracle 11g R2(11.2.0.3)
- javascript 实现jsonp
- 谓词--Predicate
- Java类锁和对象锁实践(good)
- MySQL数据库安全策略
- Mysql读写分离方案-Amoeba环境部署记录
- [C++] const与重载
- JS中文转换(UTF-8),url传递中文乱码解决
- tesseract text2image windows
- js td innerHTML
- Python的open函数文件读写线程不安全,logging模型文件读写线程安全!
- Scrum立会报告+燃尽图(Final阶段第六次)
- 芒果TV 视频真实的地址获取
- http://www.xuexi111.com/
热门文章
- JavaScript中的Function(函数)对象详解
- Linux中常用的查看系统信息的命令
- LVS负载均衡集群服务搭建详解(二)
- function foo(){}、(function(){})、(function(){}())等函数区别分析
- Access数据库之偏移注入
- 【OpenStack】OpenStack系列10之Horizon详解
- 【leetcode】3Sum Closest
- 【转】Eclipse中查看jar包中的源码
- cas单点登录用户名为中文的解决办法
- Google Code Jam 2014 Round 1B Problem B