首页 > 代码库 > URAL 1933 Guns for Battle!

URAL 1933 Guns for Battle!

给一个n,要求构造一个矩阵,满足:

1、矩阵大小为(2n+1)*(2n+1)

2、沿对角线对称

3、每个数的值在[0,2n+1]上

4、每行每列没有重复的值


手动写了一下 直接找到规律。。


#include<cstdio>
#include<cstring>
using namespace std;

int n,m,i,j,cnt,s[205][205],k;

int main()
{
    while(~scanf("%d",&n))
    {
        m=2*n+1;
        cnt=1;
        for(i=0;i<m;i++,cnt--)
        {
            if(cnt==-1) cnt=m-1;
            for(j=cnt,k=1;k<=m;j++,k++)
            {
                if(j==m) j=0;
                s[i][j]=k;
            }
            s[i][i]=0;
        }
        for(i=0;i<m;i++)
        {
            for(j=0;j<m-1;j++)
                printf("%d ",s[i][j]);
            printf("%d\n",s[i][m-1]);
        }
    }
    return 0;
}