当前位置:网站首页>Chinese remainder theorem acwing 204 Strange way of expressing integers
Chinese remainder theorem acwing 204 Strange way of expressing integers
2022-07-05 06:24:00 【T_ Y_ F666】
Chinese remainder theorem AcWing 204. Strange way to express integers
Original link
AcWing 204. Strange way to express integers
Algorithm tags
Math knowledge Congruence equation Expand the Chinese Remainder Theorem
Ideas
The picture is extracted from the solution of the question
Code
#include<bits/stdc++.h>
#define int long long
#define abs fabs
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 105;
int a[N][N], eps = 1e-8;
int n;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
void put(int x) {
if(x<0) putchar('-'),x=-x;
if(x>=10) put(x/10);
putchar(x%10^48);
}
int exgcd(int a, int b, int &x, int &y){
if(!b){
x=1, y=0;
return a;
}else{
int d=exgcd(b, a%b, y, x);
y-=a/b*x;
return d;
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
n=read();
int x=0, m1=read(), a1=read();
rep(i, 0, n-1){
int m2=read(), a2=read();
int k1, k2;
int d=exgcd(m1, m2, k1, k2);
if((a2-a1)%d){
x=-1;
break;
}
k1*=(a2-a1)/d;
k1=(k1 % (m2/d) + m2/d) % (m2/d);
x=k1*m1+a1;
int m=abs(m1/d*m2);
a1=k1*m1+a1;
m1=m;
}
if(x!=-1){
x = (a1 % m1 + m1) % m1;
}
printf("%lld",x);
return 0;
}
Originality is not easy.
Reprint please indicate the source
If it helps you Don't forget to praise and support
边栏推荐
- Error ora-28547 or ora-03135 when Navicat connects to Oracle Database
- Leetcode-31: next spread
- ADG5412FBRUZ-RL7应用 双电源模拟开关和多路复用器IC
- 博弈论 AcWing 892. 台阶-Nim游戏
- How to set the drop-down arrow in the spinner- How to set dropdown arrow in spinner?
- Dataframe (1): introduction and creation of dataframe
- Leetcode array operation
- 1.13 - RISC/CISC
- Traversal of leetcode tree
- P3265 [jloi2015] equipment purchase
猜你喜欢
MySQL advanced part 1: index
MySQL advanced part 2: optimizing SQL steps
Open source storage is so popular, why do we insist on self-development?
Gaussian elimination acwing 884 Gauss elimination for solving XOR linear equations
博弈论 AcWing 894. 拆分-Nim游戏
1.14 - assembly line
博弈论 AcWing 891. Nim游戏
Sqlmap tutorial (1)
论文阅读报告
ADG5412FBRUZ-RL7应用 双电源模拟开关和多路复用器IC
随机推荐
Nested method, calculation attribute is not applicable, use methods
Leetcode stack related
[rust notes] 17 concurrent (Part 1)
Sorting out the latest Android interview points in 2022 to help you easily win the offer - attached is the summary of Android intermediate and advanced interview questions in 2022
Real time clock (RTC)
RecyclerView的应用
中国剩余定理 AcWing 204. 表达整数的奇怪方式
Leetcode-9: palindromes
2022-5-第四周日报
1.13 - RISC/CISC
Records of some tools 2022
Chart. JS - Format Y axis - chart js - Formatting Y axis
3.Oracle-控制文件的管理
7.Oracle-表结构
ollvm编译出现的问题纪录
Day 2 document
Traditional databases are gradually "difficult to adapt", and cloud native databases stand out
如何正确在CSDN问答进行提问
[2020]GRAF: Generative Radiance Fields for 3D-Aware Image Synthesis
SPI details