1 条题解

  • 0
    @ 2025-10-10 13:44:44

    中国少羽定理

    时间复杂度:O(ai)O(\sum a_i),也就是模数和。

    #include <bits/stdc++.h>
    using namespace std;
    
    struct pig{
    	int a1,b1;
    }a[11];
    int gcd(int x,int y){
        if(x%y==0) {
            return y;
        }
    	else {
            return gcd(y,x%y);
        }
    }
    int main(){
    	long long n,ans,sum=1;
    	cin >> n;
    	for(int i=1;i<=n;++i){
    		cin >> a[i].a1 >> a[i].b1;
    	}
    	ans=a[1].b1;
    	for(int i=1;i<n;++i){
    		sum=sum*a[i].a1/gcd(sum,a[i].a1);
    		while(ans%a[i+1].a1!=a[i+1].b1){
    			ans+=sum;
    		}
    	}
    	cout<<ans<<endl;
    	return 0;
    }
    
    
    

    【模板】中国剩余定理(CRT)/ 曹冲养猪

    信息

    ID
    5553
    时间
    1000ms
    内存
    512MiB
    难度
    7
    标签
    递交数
    19
    已通过
    16
    上传者