对数据的疑惑
查看原帖
对数据的疑惑
68960
M_and_P_楼主2023/10/27 17:44

我的代码是酱紫的

#include<cstdio>
using namespace std;
const int MAXN=15;
int n;
long long m[MAXN],c[MAXN];
void exgcd(long long a,long long b,long long &x,long long &y)
{
    if (!b)
    {
        x=1;y=0;
        return ;
    }
    exgcd(b,a%b,x,y);
    long long t=x;
    x=y;
    y=t-(a/b)*y;
    return ;
}
long long crt()
{
    long long M=1;
    long long sum=0;
    for (int i=1;i<=n;i++)
    {
        M=M*(long long)m[i];
    }
    for (int i=1;i<=n;i++)
    {
        long long m_head_i=M/m[i];
        long long x0,y0;
        exgcd(m_head_i,m[i],x0,y0);
        sum=(sum+m_head_i*x0*c[i]);
        sum=(sum%M+M)%M;
    }
    return sum;
}
int main()
{
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
    {
        scanf("%lld%lld",&m[i],&c[i]);
    }
    long long ans=crt();
    printf("%lld",ans);
}

也成功A掉了

蛋柿

我有一组数据是

2
99650306 96546827
9985 4321

答案应当是

206771281471

但我输出

674441372525

这究竟是为何

2023/10/27 17:44
加载中...