Codeforces Round #363 (Div. 2)--B
来源:互联网 发布:b站知名UP主黑历史知乎 编辑:程序博客网 时间:2024/06/06 00:06
题意:
给两个数n,m,之后给出n行m列的字符矩阵,* 号代表墙,“.”表示空地,需要在字符矩阵里面安放炸弹,如果可以炸掉所有的墙,就输
出YES,并输出安放炸弹的坐标,如果没有这样的位置,则输出NO。
输入:
6 5..*....*..*****..*....*....*..
3 3..*.*.*..
输出:
YES3 3
NO
分析:
直接暴力,首先遍历,记录*的数量和每一行,每一列的*的数量,之后遍历所有点,如果该点的所在的行列的*总数等于所有的*号总
数,(如果该点是*号,需要-1,)那么就可以在该点放置炸弹,如果没有这样的点就输出NO。
代码:
#include <bits/stdc++.h>using namespace std;const int maxn=1000+10;char c[maxn][maxn];int rr[maxn],cc[maxn];int main(){ int n,m; cin >>n>>m; int num = 0; for(int i = 0; i < n; ++i) { cin >>c[i]; for(int j = 0; j < m; ++j) { if(c[i][j] == '.') continue; num++; rr[i]++; cc[j]++; } } int f=-1,y=0; for(int i = 0; i < n && f == -1; ++i) for(int j = 0; j < m && f == -1; ++j) { if(rr[i]+cc[j]+(c[i][j]=='*'?-1:0)==num) { f=i; y=j; } } if(f == -1) cout <<"NO"<<endl; else cout <<"YES"<<endl<<f+1<<' '<<y+1<<endl; return 0;}
0 0
- Codeforces Round #363 (Div. 2)--B
- Codeforces Round #363 (Div. 2) B 暴力
- Codeforces Round #363 (Div. 2), problem: (B)
- Codeforces Round #363 (Div. 2)[B]One Bomb
- Codeforces Round #363 (Div. 2) B. One Bomb
- Codeforces Round #363 (Div. 2) B. One Bomb (水题)
- Codeforces Round #363 (Div. 2) B. One Bomb(模拟)
- Codeforces Round #363B (Div. 2) One Bomb
- Codeforces Round #363 (Div. 2) (A,B,C)
- Codeforces Round #363 (Div. 2)B One Bomb
- Codeforces Round #363 (Div. 2) B. One Bomb
- Codeforces Round #363 (Div. 2) B. One Bomb
- Codeforces Round #131 (Div. 2) A B
- Codeforces Round #134 (Div. 2)B. Airport
- Codeforces Round #170 (Div. 2) problem B
- Codeforces Round #173 (Div. 2) Problem B
- Codeforces Round #181 (Div. 2) B. Coach
- Codeforces Round #185 (Div. 2)--A,B
- ProgressBar
- scp拷贝多个小文件
- bootstrap
- 我见过最好的Retrofit解析
- 背包问题
- Codeforces Round #363 (Div. 2)--B
- React 应用的性能优化思路
- codeforces 699B One Bomb
- 深度学习大牛Andrew Ng为何离开谷歌加盟百度?
- Android 动画
- MSP430晶振配置详解
- wait()函数详解
- Mac PHP的Sublime Text 2 配置PHP调试环境
- 【Java集合源码剖析】ArrayList源码剖析