cf12E Start of the season(构造,,,)
题意:
给一个偶数N。
构造出一个矩阵。
满足:主对角线上全为0。每一行是0~N-1的一个全排列。矩阵关于主对角线对称。
思路:
觉得是智商题,,,,看完题解后觉得不难,但是我就是没想出来。只想到了前面一部分。哎观察力,,,,,
例:N=6
构造:
12345
23451
34512
45123
51234
满足条件。
现在每行要加上一个零。发现主对角线上的数正好是1-5的一个全排列。把它们和0交换,放到每行和每列的末尾。
023451
204513
340125
451032
512304
135240
出来了。。。。。
代码:
int n; int ans[1005][1005]; int main(){ cin>>n; n--; rep(i,1,n) ans[1][i]=i; rep(i,2,n){ rep(j,2,n) ans[i][j-1]=ans[i-1][j]; ans[i][n]=ans[i-1][1]; } rep(i,1,n){ ans[i][n+1]=ans[i][i]; ans[i][i]=0; } rep(i,1,n){ ans[n+1][i]=ans[i][n+1]; } rep(i,1,n+1){ rep(j,1,n+1) printf("%d ",ans[i][j]); cout<<endl; } return 0; }