1 条题解

  • 0
    @ 2022-10-28 20:00:49

    不水的题解

    `

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define N 50005
    #define M 50005
    using namespace std;
    int n,m,ans[M][10],num[M],a[M],A,B,C,D;
    int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=0;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
        if(f)return x;return -x;
    }
    int main()
    {
        n=read();m=read();
        for(int i=1;i<=m;i++)
        {
            a[i]=read();
            num[a[i]]++;
        }
        for(int t=1;t*9<n;t++)
        {
            int sum=0;
            for(D=9*t+2;D<=n;D++)
            {
                C=D-t;
                B=C-6*t-1;
                A=B-2*t;
                sum+=num[A]*num[B];
                ans[C][3]+=num[D]*sum;
                ans[D][4]+=num[C]*sum;
            }
            sum=A=B=C=D=0;
            for(A=n-t*9-1;A>=1;A--)
            {
               	B=A+2*t;
                C=B+6*t+1;
                D=C+t;
                sum+=num[C]*num[D];
                ans[A][1]+=num[B]*sum;
                ans[B][2]+=num[A]*sum;
            }
        }
        for(int i=1;i<=m;i++)
        {
            for(int j=1;j<=4;j++)
            {
                cout<<ans[a[i]][j]<<" ";
            }
            cout<<endl;
        }
        return 0;
    }
    
    
    

    `

    • 1

    信息

    ID
    761
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    6
    已通过
    3
    上传者