欢迎光临
我们一直在努力

2024山东省CCPC K题

题意:

n*n的方阵中至少包含1~2*n一次,且仅有一个子矩阵四个角互不相等。

思路:

让方阵的四个角互不相同,第一行互不相同,这就用了n个数了,第一列也互不相等,这就用了2*n-1个数了,因为方阵四个角互不相同,再加上右下角的数,这就用够了2*n个数了,最后一行其他位置的和第一行相同,其他行上的数和这一行第一个数相同。

#include <iostream>
#include <vector>
using namespace std;
#define int long long

signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);

int n;cin>>n;
cout<<"YES"<<endl;
vector<vector<int>> a(n, vector<int>(n));
a[0][0]=1,a[0][n-1]=2,a[n-1][0]=3,a[n-1][n-1]=4;
int d=5;

for(int j=1;j<n-1;j++)
{
a[0][j]=d;
d++;
}

for(int i=1;i<n-1;i++)
{
for(int j=0;j<n;j++)
{

a[i][j]=d;

}
d++;
}
for(int i=1;i<n-1;i++)
{
a[n-1][i]=a[0][i];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

赞(0)
未经允许不得转载:171主机测评 » 2024山东省CCPC K题
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址