题解:P14247 [CCPC 2024 Shandong I] 矩阵
liuzhongrui · · 题解
思路
我们发现,这题限制较为严格的就是四元组这一块,这个限制简单解释一下就是在你构造的矩阵中,恰有一个子矩阵满足四个角不相同。那既然这个限制比较严格,我们就先考虑这个限制,一种比较简单的处理方法就是让你构造的大矩阵的四个角满足这个限制,四个角从左到右,从上到下分别填
题目要求我们的矩阵元素要包括所有
我们确定好四个角后,先不管第一行和最后一行,先考虑第
最后考虑第一行和最后一行剩下的格子。这里就没啥太大限制了,如果
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=55;
int n,a[N][N];
signed main(){
ios::sync_with_stdio(0),cin.tie(0);
cin>>n,a[1][1]=1,a[1][n]=2,a[n][1]=3,a[n][n]=4;
for(int i=2,l=5;i<n;i++,l++)for(int j=1;j<=n;j++)a[i][j]=l;
for(int i=2,l=3+n;i<n;i++)a[1][i]=a[n][i]=(l<n*2?l++:l);
cout<<"Yes\n";
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cout<<a[i][j]<<(j==n?"\n":" ");
return 0;
}