P7873 「SWTR-07」Scores
Posted David24
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P7873 「SWTR-07」Scores相关的知识,希望对你有一定的参考价值。
1 P7873 「SWTR-07」Scores
2 题目描述
时间限制 \\(200ms\\) | 空间限制 \\(16MB\\)
试构造一个 \\(n \\times m\\) 的矩阵 \\(s\\),满足所有元素为 \\([0,100]\\) 之间的整数,且对于任意 \\(i,j\\ (i\\neq j)\\) 存在一个 \\(k\\) 使得 \\(s_{i,k}>s_{j,k}\\) 。
数据范围:
对于 \\(100\\%\\) 的数据,\\(1\\leq n,m\\leq 100,T=20\\)
3 题解
考虑构造。
容易发现,对于任意 \\(i \\ne j\\),一定 \\(\\exists \\space k_1, s_{i, k_1} > s_{j, k_1}\\) 且 \\(\\exists \\space k_2, s_{i, k_2} < s_{j, k_2}\\)。
为了尽可能满足条件,我们令 \\(k_1 = 1, k_2 = 2\\)。
此时将每行的第一列按照 \\(1,2,..,n\\) 构造,第二列按照 \\(n, n-1, ..., 1\\) 构造即可。
注意判断无解情况。
4 代码(空格警告):
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <map>
#include <cstdlib>
#include <cmath>
using namespace std;
const int N = 105;
int read()
{
int x = 0, f = 1;
char c = getchar();
while (c < \'0\' || c > \'9\')
{
if (c == \'-\') f = -1;
c = getchar();
}
while (c >= \'0\' && c <= \'9\')
{
x = (x << 1) + (x << 3) + (c ^ 48);
c = getchar();
}
return x * f;
}
int T;
int n, m;
int Map[N][N];
int main()
{
T = read(), T = read();
while (T--)
{
n = read(), m = read();
if (n != 1 && m == 1)
{
puts("NO");
continue;
}
puts("YES");
if (n == 1 && m == 1)
{
puts("0");
continue;
}
for (int i = 1; i <= n; i++)
{
Map[i][1] = i;
Map[i][2] = n - i + 1;
}
for (int i = 1; i <= n; i++)
for (int j = 3; j <= m; j++)
Map[i][j] = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++) printf("%d ", Map[i][j]);
puts("");
}
}
return 0;
}
欢迎关注
以上是关于P7873 「SWTR-07」Scores的主要内容,如果未能解决你的问题,请参考以下文章
P7874 「SWTR-07」My rating is -32
AttributeError:“RandomizedSearchCV”对象没有属性“grid_scores_”