求助,样例过了,0分
查看原帖
求助,样例过了,0分
1051936
suizihan1226楼主2025/8/1 11:29
#include<bits/stdc++.h>
using namespace std;
#define int long long
int k,ans;
int a[15],b[15];
int exgcd(int a,int b,int &_x0,int &_y0)
{
    if(b==0)
	{
       _x0=1;
       _y0=0;
       return a;
    }
    int ans=exgcd(a,a%b,_x0,_y0);
    int tmp=_x0;
    _x0=_y0;
    _y0=tmp-a/b*_y0;
    return ans;
}
int qp(int x,int y,int m)
{
    int sum=1;
	while(y!=0)
	{
	 	  if(y%2==1)
	 	  {
	 	   	 sum=sum*x%m;
		  }
	 	  x=x*x%m;
	 	  y/=2;
	}
	return sum;
}
signed main(){
//    freopen(".in","r",stdin);
//    freopen(".out","w",stdout);
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>k;
	for(int i=1;i<=k;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=k;i++)
	{
		cin>>b[i];
	}
	int M=1;
	for(int i=1;i<=k;i++)
	{
		M*=b[i];
	}
	for(int i=1;i<=k;i++)
	{
		int m=M/b[i];
		int x0=0,y0=0;
		exgcd(b[i],m,x0,y0);
		x0=(x0%b[i]+b[i])%b[i];
		ans=(ans+qp(qp(a[i],m,M),x0,M))%M;
	}
	cout<<ans;
//    fclose(stdin);
//    fclose(stdout);
	return 0;
}
2025/8/1 11:29
加载中...