社区讨论
90pts WAon#2求调
P3868[TJOI2009] 猜数字参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mhjo3vj9
- 此快照首次捕获于
- 2025/11/04 05:44 4 个月前
- 此快照最后确认于
- 2025/11/04 05:44 4 个月前
CPP
#include <bits/stdc++.h>
#define int __int128
using namespace std;
int n,a[15],b[15],k;
int x,y;
void exgcd(int a,int b,int &x,int &y){
if(b==0)
{
x=1,y=0;
return ;
}
exgcd(b,a%b,x,y);
int t=x;
x=y;
y=t-a/b*y;
}
signed main()
{
scanf("%lld",&k);
for(int i=1;i<=k;i++)
{
scanf("%lld",&a[i]);
}
for(int i=1;i<=k;i++)
{
scanf("%lld",&b[i]);
}
int s=1;
int ans=0;
for(int i=1;i<=k;i++)
s*=b[i];
// cout<<s<<" ";
for(int i=1;i<=k;i++)
{
int t=s/b[i];
exgcd(t,b[i],x,y);
if(a[i]<0)
{
a[i]=b[i]+(a[i]%b[i]);
}
//a[i]=(a[i]%b[i]+b[i])%b[i];
ans=((ans+t*x*a[i])%s+s)%s;
// cout<<t<<" "<<y<<" "<<ans<<"\n";
}
printf("%lld",ans);
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...