本文主要是介绍Codeforces Round #228 (Div. 2) B. Fox and Cross,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这一题也是比较简单的,就是两层循环判断即可,没遇到一个‘#’就判断周围的'#'是否满足十字条件,若不满足,输出"NO"结束,否则就令这几个’#‘都为'.',注意要对每个位置都进行判断、处理
代码如下:
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#define maxn 110
using namespace std;char a[maxn][maxn];int main(void){int n;while(cin >> n){for(int i=0; i<n; ++i)for(int j=0; j<n; ++j)cin >> a[i][j];for(int i=0; i<n-2; ++i)for(int j=1; j<n-1; ++j){if(a[i][j] == '#'){if(a[i+1][j]=='#' && a[i+2][j]=='#' && a[i+1][j-1]=='#' && a[i+1][j+1]=='#'){a[i][j]='.';a[i+1][j]='.';a[i+2][j]='.';a[i+1][j-1]='.';a[i+1][j+1]='.';}else{cout << "NO" << endl;return 0;}}}for(int i=0; i<n; ++i)if(a[i][0]=='#' || a[i][n-1]=='#'){cout << "NO" << endl;return 0;}for(int j=1; j<n-1; ++j)if(a[n-2][j]=='#' || a[n-1][j]=='#'){cout << "NO" << endl;return 0;}cout << "YES" << endl;}return 0;
}
这篇关于Codeforces Round #228 (Div. 2) B. Fox and Cross的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!