Codeforces 699B One Bomb

来源:互联网 发布:守望先锋性能数据rtt 编辑:程序博客网 时间:2024/05/16 18:13

题意:

你有一颗炸弹可以炸一行一列,问你如何放置炸弹能把所有的墙炸掉。

思路:

先计算墙的总个数和每一行每一列墙的个数,然后枚举每一个点,若满足该行墙的个数+该列墙的个数-1=墙的总个数那么这个点就是答案。

#include<cstdio>#include<cstring>const int MAX=1005;int n,m,r[MAX],c[MAX];char mp[MAX][MAX];int main(){scanf("%d%d",&n,&m);int num=0;memset(r,0,sizeof(r));memset(c,0,sizeof(r));for(int i=1;i<=n;i++){scanf("%s",mp[i]+1);for(int j=1;j<=m;j++){if(mp[i][j]=='*'){num++,r[i]++,c[j]++;}}}int ansx,ansy;bool flag=false;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(num==r[i]+c[j]-(mp[i][j]=='*'?1:0)){ansx=i,ansy=j;flag=true;break;}}if(flag) break;}if(flag) printf("YES\n%d %d\n",ansx,ansy);else printf("NO\n");return 0;}


0 0
原创粉丝点击