Logo FiraCode 的博客

博客

CF12E题解

...
FiraCode
2025-12-01 12:55:19
什么意思呢

本文章由 WyOJ Shojo 从洛谷专栏拉取,原发布时间为 2022-05-23 22:20:57

题解思路

首先构造一个序列,他满足第二个条件:

1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4

然后我们把中间换成 $0$:

0 2 3 4 5
2 0 4 5 1
3 4 0 1 2
4 5 1 0 3
5 1 2 3 0

然后再把变成 $0$ 的给添到后面:

0 2 3 4 5 1
2 0 4 5 1 3
3 4 0 1 2 5
4 5 1 0 3 2
5 1 2 3 0 4
1 3 5 2 4 0

然后就可以了!

AC CODE:

#include 
#include 
using namespace std;
const int N = 1010;
int n;
int a[N][N];
int main() {
    cin >> n;
    for (int i = 0; i < n; ++ i)
      for (int j = 0; j < n; ++ j)
	        a[i][j] = (i + j) % (n - 1) + 1;\/\/处理一个对称矩阵
    for (int i = 0; i < n; ++ i) {
	      a[i][n - 1] = a[n - 1][i] = a[i][i];\/\/把他填在后面
	      a[i][i] = 0;\/\/替换成0
    }
    for (int i = 0; i < n; ++ i) {
    	  for (int j = 0; j < n; ++ j)
  	  	    cout << a[i][j] << ' ';
  	  	cout << endl;
    }
    return 0;
}

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。