本文主要是介绍2019湖南省赛 全 1 子矩阵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
全 1 子矩阵
Bobo 写了一个 n n n 行 m m m 列的矩阵 A i , j A_{i, j} Ai,j.
首先,他把所有元素 A i , j A_{i, j} Ai,j ( 1 ≤ i ≤ n , 1 ≤ j ≤ m 1 \leq i \leq n, 1 \leq j \leq m 1≤i≤n,1≤j≤m) 设为 0.
然后,他选了 4 4 4 个整数 x 1 , x 2 , y 1 , y 2 x_1, x_2, y_1, y_2 x1,x2,y1,y2 满足 1 ≤ x 1 ≤ x 2 ≤ n , 1 ≤ y 1 ≤ y 2 ≤ m 1 \leq x_1 \leq x_2 \leq n, 1 \leq y_1 \leq y_2 \leq m 1≤x1≤x2≤n,1≤y1≤y2≤m,并把满足 x 1 ≤ i ≤ x 2 , y 1 ≤ j ≤ y 2 x_1 \leq i \leq x_2, y_1 \leq j \leq y_2 x1≤i≤x2,y1≤j≤y2 的元素 A i , j A_{i, j} Ai,j 设为 1.
给出 n n n 行 m m m 列的矩阵 A i , j A_{i, j} Ai,j, 判断它是否是 Bobo 所写的矩阵。
输入格式
输入文件包含多组数据,请处理到文件结束。
每组数据的第一行包含两个整数 n n n 和 m m m.
接下来 n n n 行,其中第 i i i 行包含 m m m 个整数 A i , 1 , A i , 2 , … , A i , m A_{i, 1}, A_{i, 2}, \dots, A_{i, m} Ai,1,Ai,2,…,Ai,m.
1 ≤ n , m ≤ 10 1 \leq n, m \leq 10 1≤n,m≤10
A i , j ∈ 0 , 1 A_{i, j} \in {0, 1} Ai,j∈0,1
至多 1000 1000 1000 组数据。
输出格式
对于每组数据,如果所给矩阵是 Bobo 所写的矩阵,输出 Yes, 否则输出 No.
思路:
签到不解释
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;int a[20][20];
int main()
{int n,m;while(~scanf("%d%d",&n,&m)){int flag = 1;int x1 = n,y1 = m,x2 = 0,y2 = 0;for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){scanf("%1d",&a[i][j]);if(a[i][j] == 1){flag = 0;x1 = min(x1,i);x2 = max(x2,i);y1 = min(y1,j);y2 =max(y2,j);}}}for(int i = x1;i <= x2;i++){for(int j = y1;j <= y2;j++){if(a[i][j] != 1){flag = 1;break;}}if(flag)break;}if(flag)printf("No\n");else printf("Yes\n");}return 0;
}
这篇关于2019湖南省赛 全 1 子矩阵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!