1 条题解

  • 0
    @ 2025-10-8 16:59:36

    题解一:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int v[N],a[6],b[6],c[6];
    int main()
    {
        int n;scanf("%d",&n);
        memset(v,0,sizeof(v));
        b[1]=1;for(int i=2;i<=5;i++) b[i]=b[i-1]*10;
        for(int ni=1;ni<=n;ni++)
        {
            for(int i=1;i<=5;i++)scanf("%d",&a[i]);
            for(int i=1;i<=5;i++)
            {
                memcpy(c,a,sizeof(a));
                for(int j=1;j<=9;j++)
                {
                    c[i]=(c[i]+1)%10;
                    int y=0;for(int k=1;k<=5;k++)y+=c[k]*b[k];
                    v[y]++;
                }
            }
            for(int i=2;i<=5;i++)
            {
                memcpy(c,a,sizeof(a));
                for(int j=1;j<=9;j++)
                {
                    c[i-1]=(c[i-1]+1)%10;
                    c[i]=(c[i]+1)%10;
                    int y=0;for(int k=1;k<=5;k++)y+=c[k]*b[k];
                    v[y]++;
                }
            }
        }
        int ans=0;
        for(int i=0;i<=99999;i++)ans+=(v[i]==n);
        printf("%d\n",ans);
        return 0;
    }
    

    题解二:

    #include<bits/stdc++.h>//code by cff_0102
    using namespace std;
    int x[10][10][10][10][10];
    int f(int a, int b){
        return (a+b)%10;
    }
    int main(){
        ios::sync_with_stdio(0);cin.tie(0);
        int n;cin>>n;
        for(int _=0;_<n;_++){
            int a, b, c, d, e;cin>>a>>b>>c>>d>>e;
            for(int i=1;i<=9;i++){
                x[f(a, i)][ b ][c][d][e]++;//此处 b 前后打空格是迫不得已,否则会被识别为加粗(bold)!
                x[a][f(b, i)][c][d][e]++;
                x[a][ b ][f(c, i)][d][e]++;
                x[a][ b ][c][f(d, i)][e]++;
                x[a][ b ][c][d][f(e, i)]++;
                x[f(a, i)][f(b, i)][c][d][e]++;
    • 1

    信息

    ID
    1966
    时间
    1000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    41
    已通过
    25
    上传者