给定正整数 $n$ 和 $m$,试试构造一个 $n\times m$ 的矩阵 $s$,满足所有元素为 $[0,100]$ 之间的整数,且对于任意 $i,j(i\neq j)$ 存在整数 $k$ 使得 $s_{i,k}\gt s_{j,k}$。
- 当 $m=1,n\geq 2$ 时,显然无法构造满足题意的矩阵 $s$。
- 否则,始终能构造满足题意的矩阵 $s$,如下所示。
$$
\begin{matrix}
1 & 1 & \dotsc & 1 & 99\
2 & 2 & \dotsc & 2 & 98\
3 & 3 & \dotsc & 3 & 97\
\vdots & \vdots & \ddots & \vdots & \vdots\
n & n & \dotsc & n & 100-n
\end{matrix}
$$
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| #include <iostream>
using namespace std;
void construct(int n,int m){
for (int i = 1;i <= n;i++){
for (int j = 1;j < m;j++) cout << i << ' ';
cout << 100 - i << endl;
}
return ;
}
int T,t,n,m;
int main(){
cin >> T >> t;
for (int i = 1;i <= t;i++){
cin >> n >> m;
if (m == 1 && n >= 2){
cout << "NO\n";
}
else{
cout << "YES\n";
construct(n,m);
}
}
return 0;
}
|