专栏文章
题解:P14247 [CCPC 2024 Shandong I] 矩阵
P14247题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @minksjgp
- 此快照首次捕获于
- 2025/12/02 04:02 3 个月前
- 此快照最后确认于
- 2025/12/02 04:02 3 个月前
题目大意
构造一个 的矩阵,元素范围从 到 。要求 1 到
每种元素至少出现一次,且恰有一个子矩阵的四角元素互不
相同。
。
- 考虑这种矩阵
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 6 7 8 9 10
5 6 7 8 11 12
可以发现这种矩阵一定符合要求
-
前 行,第 行全填 ,这样子矩阵的上下边就只能选择最后两行,否则至少两个角会相同。
-
最后两行的前 列,第 列全填 ,这样子矩阵的左右边界就只能选择最后两列,否则至少两个角会相同。
-
右下角的 子矩阵填剩下四个不同的数即可。
ACcode
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,t,a[100005];
signed main()
{
t=1;
while(t--)
{
cin>>n;
cout<<"Yes\n";
for(int i=1;i<=n-2;i++)
{
for(int j=1;j<=n;j++)
{
cout<<i<<" ";
}
cout<<endl;
}
for(int i=1;i<=n-2;i++)
cout<<i+n-2<<" ";
for(int i=1;i<=2;i++)
cout<<i+n-2+n-2<<" ";
cout<<endl;
for(int i=1;i<=n-2;i++)
cout<<i+n-2<<" ";
for(int i=1;i<=2;i++)
cout<<i+2+n-2+n-2<<" ";
cout<<endl;
}
return 0;
}
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...