求助P1495
  • 板块灌水区
  • 楼主tangzhihui123
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/5/2 19:19
  • 上次更新2023/10/23 16:52:53
查看原帖
求助P1495
419268
tangzhihui123楼主2023/5/2 19:19
#include<bits/stdc++.h>
using namespace std;
void exgcd(int n,int m,int &x,int &y){
    if(!m) x=1,y=0;
    else exgcd(m,n%m,y,x),y-=n/m*x;
}//这段抄的
int gcd(int x,int y){
    return !y ? x:gcd(y,x%y);
}
int main(){
    int n,m;int p=0,x;
    scanf("%d",&n);
    if(n%2==0){n--;p=1;}
    int m1,m2,a1,a2;
    scanf("%d%d%d%d",&m1,&a1,&m2,&a2);
    int g=gcd(m,n);
    int k1,k2,c;c=a2-a1;
    exgcd(m1/g,m2/g,k1,k2);
    k1*=c/gcd(m1,m2),k2*=c/gcd(m1,m2);
    x=k1*m1+a1;
    m=m1*m2;
    for(int i=3;i<=n;++i){
        k1=0,k2=0;
        int k,m3,a3;
        scanf("%d%d",&m3,&a3);
        int g=gcd(m,m3);if(g<0)g=-g;
        c=m3-x;
        exgcd(6,5,k1,k2);
        //exgcd(m/g,m3/g,k1,k2);
        cout<<m<<" "<<m3<<" "<<g<<" "<<c<<" "<<k1<<" "<<k2;
        k1*=c,k2*=c;
        x=k2*n+a1;
        m=m*n/g;
    }
    printf("%d",x);
    return 0;
}

不知道哪里出问题了(知道就不来了) 求助各位大佬

2023/5/2 19:19
加载中...