poj 2891 Strange Way to Express Integers【扩展中国剩余定理】
2024-08-23 07:31:07
扩展中国剩余定理板子
#include<iostream>
#include<cstdio>
using namespace std;
const int N=100005;
int n;
long long m[N],r[N],M,R,x,y,d;
void exgcd(long long a,long long b,long long &d,long long &x,long long &y)
{
if(!b)
{
d=a,x=1,y=0;
return;
}
exgcd(b,a%b,d,y,x);
y-=a/b*x;
}
int main()
{
while(~scanf("%d",&n))
{
bool fl=0;
for(int i=1;i<=n;i++)
scanf("%lld%lld",&m[i],&r[i]);
R=r[1],M=m[1];
for(int i=2;i<=n;i++)
{
exgcd(M,m[i],d,x,y);
if((r[i]-R)%d)
{
fl=1;
break;
}
x=(r[i]-R)/d*x%(m[i]/d);
R=R+M*x;
M=M/d*m[i];
R=R%M;
}
if(fl)
puts("-1");
else
printf("%lld\n",(R+M)%M);
}
return 0;
}
最新文章
- PyQt4入门学习笔记(一)
- iOS 2D绘图 (Quartz2D)之路径(stroke,fill,clip,subpath,blend)
- PHP基础教程-54课-问题
- [转]设定version 更新js缓存
- 关于Linux下进程间使用共享内存和信号量通信的时的编译问题
- JS使用百度地图API
- <;string>;和<;string.h>;的区别
- Android 高级UI设计笔记09:Android如何实现无限滚动列表
- 异常处理 - PHP手册笔记
- Mini-project # 4 - ";Pong";___An Introduction to Interactive Programming in Python";RICE";
- Python教程(2.4)——字符串
- 配置ssh无密钥登陆
- mysql数据类型(三)
- 2019swpuj2ee作业2--HTTP协议
- tp5多数据库配置
- Python中MongoDB使用
- 理解SVG的图形填充规则
- 【Linux笔记】阿里云服务器被暴力破解
- CUGBACM Codeforces Tranning 3 题解
- ios图标生成器网址 插件禁用后,可以选择这个
热门文章
- React 组件开发注意事项
- dvm进程,linux进程,应用程序进程是否同一概念
- 使用maven创建项目和cannot change version web module 3.0
- PHP生成excel(2)
- Spark学习笔记:(一)入门 glance
- 有遍历struct中字段信息的函数或方法
- STM32唯一身份识别ID(器件电子签名)的读取以及芯片Flash大小读取
- Apache Flink 1.5.1 Released
- Messaging Patterns for Event-Driven Microservices
- strncpy和strlen的可能的实现