题解 P7873 【「SWTR-07」Scores(easy version)】
P7873 「SWTR-07」Scores(easy version)
小清新构造。
我觉得看简化题意不如看原题面,有代入感会比较好理解题目。
不能让一个人的所有科目分数都不比另一个人高。
无解的情况只有有多个人且只有一个科目的时候。
做题一定要关注数据范围。
注意到最多只有
假设有个人在某一科有
讲到这里思路已经呼之欲出了。我赛时的想法是安排相邻的两科的分数一科升序一科降序。写题解的时候又想到让前面 我懒得写了。
代码实现非常容易,没啥核心代码就放整个了。以下是赛时代码。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int sco[110][110];
int main()
{
// freopen("work.in","r",stdin); freopen("work.out","w",stdout);
int t,n,m;
scanf("%d%d",&t,&t);
while(t--)
{
scanf("%d%d",&n,&m);
if(m == 1 && n > 1) puts("NO");
else
{
puts("YES");
for(int j=1;j<=m;j++)
for(int i=1;i<=n;i++)
{
if(j&1) sco[i][j]=i;
else sco[i][j]=n-i+1;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++) printf("%d ",sco[i][j]);
puts("");
}
}
}
// fclose(stdin); fclose(stdout);
return 0;
}
Thank you for your reading !