2 条题解

  • 1
    @ 2023-06-10 14:54:03
    //题目没给数据范围,根据我的实验,在此说明:
    //15行15列会有4个点越界
    //55行55列会有1个点越界
    //105行105列满分
    /*
    #1   Accepted   3ms 412.0 KiB
    #2   Accepted   5ms 460.0 KiB
    #3   Accepted   4ms 412.0 KiB
    #4   Accepted   3ms 412.0 KiB
    #5   Accepted   3ms 412.0 KiB
    #6   Accepted   3ms 412.0 KiB
    #7   Accepted   3ms 412.0 KiB
    #8   Accepted   4ms 412.0 KiB
    #9   Accepted   4ms 364.0 KiB
    #10  Accepted   4ms 412.0 KiB
    */
    //源码如下:
    #include<bits/stdc++.h>
    using namespace std;
    int n,a[105][105];
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)   
            cin>>a[1][i];
        for(int i=1;i<=n;i++)
        {
            int x=-1;
            for(int j=1;j<=n;j++)
                if(i==a[1][j])
                {
                    x=j%n;
                    break;
                }
            for(int j=x,k=1;k<=n;k++,j%=n,j++)
                a[k][a[1][j]]=a[1][i];
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
                cout<<a[i][j]<<' ';
            cout<<endl;
        }
        return 0;
    }
    
  • 0

    #include<bits/stdc++.h>
    using namespace std;
    int a[201][201],n,t,jj;

    int main()
    {
    cin>>n;
    for(int j=1;j<=n;j++)
    cin>>a[1][j];
    for(int k=1;k<=n;k++)
    {
    for(int j=1;j<=n;j++)
    if(a[1][j]==k)
    t=j;
    for(int j=1;j<=n;j++)
    if(a[1][j]==t)
    jj=j;

    for(int i=2;i<=n;i++)

    {

    ++jj;
    if(jj>n)jj=1;
    a[i][a[1][jj]]=k;
    }
    }
    for(int i=1;i<=n;i++)
    {
    for(int j=1;j<=n;j++)
    cout<<a[i][j]<<' ';
    cout<<endl;

    }
    return 0;
    }

  • 1

信息

ID
1916
难度
4
分类
(无)
标签
递交数
47
已通过
22
通过率
47%
被复制
3
上传者