在一个n*m的矩阵中,每一个点被标上0或1。如何用c++语言编程判断被标1的点是否组成一个矩形?
答案:1 悬赏:20 手机版
解决时间 2021-11-11 21:18
- 提问者网友:泪痣哥哥
- 2021-11-11 12:59
在一个n*m的矩阵中,每一个点被标上0或1。如何用c++语言编程判断被标1的点是否组成一个矩形?
最佳答案
- 五星知识达人网友:轮獄道
- 2021-11-11 14:28
思路:找到最上最下,最左最右的1,然后判断它们之间是否全是1
#include
int n,m;
int f[1005][1005];
int s=10086,x=0,z=10086,y=0;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%d",&f[i][j]);
if(f[i][j]){
if(i if(i>x) x=i;
if(j if(j>y) y=j;
}
}
}
if(!x){
printf("ûÓÐ1
");
}
else{
int flag=1;
for(int i=s;i<=x;i++){
for(int j=z;j<=y;j++){
if(!f[i][j]) flag=0,std::cout< ";
}
}
if(flag) printf("Yes
");
else printf("No
");
}
return 0;
}
#include
int n,m;
int f[1005][1005];
int s=10086,x=0,z=10086,y=0;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%d",&f[i][j]);
if(f[i][j]){
if(i
if(j
}
}
}
if(!x){
printf("ûÓÐ1
");
}
else{
int flag=1;
for(int i=s;i<=x;i++){
for(int j=z;j<=y;j++){
if(!f[i][j]) flag=0,std::cout< ";
}
}
if(flag) printf("Yes
");
else printf("No
");
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯