大致题意:n*m列的矩阵,*代表炸弹,试问是否存在一种情况使得只安放一个炸弹,使得所有炸弹全部消失。
思路:枚举每一个点,使得该点的行和列的炸弹消失,判断是否能消灭所有炸弹。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int visit1[1005],visit2[1005];
char box[1005][1005],str[1005][1005];
int main()
{
int n,m,i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
int flag1=0,flag2=0;
int sum1=0,sum2;
int ykc1[1005],ykc2[1005];
int x=0,y=0;
memset(ykc1,0,sizeof(ykc1));
memset(ykc2,0,sizeof(ykc2));
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf(" %c",&box[i][j]);
if(box[i][j]=='*')
{
sum1+=1;
ykc1[i]+=1;
ykc2[j]+=1;
}
}
}
int t1=0,t2=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
sum2=ykc1[i]+ykc2[j];
if(box[i][j]=='*')
sum2-=1;
if(sum2==sum1)
{
flag1=1;
t1=i;
t2=j;
}
if(flag1==1)
break;
}
if(flag1==1)
break;
}
if(flag1==0)
printf("NO\n");
else
{
printf("YES\n");
printf("%d %d\n",t1,t2);
}
}
}
CF-One Bomb(炸弹问题)
最新推荐文章于 2023-05-20 16:05:40 发布