哪里错了1164

#include<cstdio>
#include<cstdlib>
#include<cstring>
int n;
int a[11],b[11];
int max=0;
bool tf=true;

int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%d %d",&a[i],&b[i]);
if (a[i]+b[i]>max) max=a[i]+b[i];
}
for (int i=a[1]+b[1];;i=i+a[1])
{
tf=true;
for (int j=1;j<=n;j++)
{
if ((i-b[j])%a[j]!=0)
{
tf=false;
break;
}
}
if (tf==true)
{
printf("%d",i);
return 0;
}
}
}

2 条评论

  • @ 2016-11-18 21:48:51
    #include <bits/stdc++.h>
    using namespace std;
    int a[15],b[15];
    int main()
    {
        long long i,j,l,n,m;
        bool flag=true;
        cin>>n;
        for(i=1;i<=n;i++) scanf("%d %d",&a[i],&b[i]);
        for(i=0;;i++) {
            flag=true;
            l=i*a[1]+b[1];
            for(j=2;j<=n;j++)
                if((l-b[j])%a[j]!=0) {
                    flag=false;
                    break;
                }
            if(flag) {
                cout<<i*a[1]+b[1]<<endl;
                break;
            }
        }
        return 0;
    }
    

    枚举大发竟然只有两个点超时

  • @ 2016-11-18 21:48:05

    #include <bits/stdc++.h>
    using namespace std;
    int a[15],b[15];
    int main()
    {
    long long i,j,l,n,m;
    bool flag=true;
    cin>>n;
    for(i=1;i<=n;i++) scanf("%d %d",&a[i],&b[i]);
    for(i=0;;i++) {
    flag=true;
    l=i*a[1]+b[1];
    for(j=2;j<=n;j++)
    if((l-b[j])%a[j]!=0) {
    flag=false;
    break;
    }
    if(flag) {
    cout<<i*a[1]+b[1]<<endl;
    break;
    }
    }
    return 0;
    }

  • 1

信息

ID
1164
难度
6
分类
数论 | 解线性同余方程 点击显示
标签
递交数
4618
已通过
1160
通过率
25%
被复制
12
上传者