题解:P14247 [CCPC 2024 Shandong I] 矩阵

· · 题解

题目链接

题目传送门

思路

题中意思是只需要一个四元组 (x,y,z,w) 满足:

那么我们只需让矩阵的右下角的四个数字也就是: a_{n-1,n-1},a_{n-1,n},a_{n,n-1},a_{n,n} 互不相同即可。

举个例子:n=3 时答案可以是

1 1 1
2 3 4
2 5 6

也就是让前 n-2 行中第 i 行都填 in-1 行第 i 列填 i+n-2,最后一行的前 n-2 列的第 i 列填 i+n-2,最后两个数填 2 \times n-12 \times n

AC 代码

#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    cin>>n;
    cout<<"Yes\n";
    for(int i=1;i<=n-2;i++){
        for(int j=1;j<=n;j++){
            cout<<i<<' ';
        }
        cout<<'\n';
    }
    for(int i=1;i<=n;i++)
            cout<<i+n-2<<" ";
    cout<<'\n';
    for(int i=1;i<=n-2;i++)
        cout<<i+n-2<<' ';
    cout<<2*n-1<<' '<<2*n;
    return 0;
}