codeforces Fox and Cross
来源:互联网 发布:最新网络伤感情歌 编辑:程序博客网 时间:2024/05/16 00:52
Description
Fox Ciel has a board with n rows and n columns. So, the board consists of n × n cells. Each cell contains either a symbol ‘.’, or a symbol ‘#’.
A cross on the board is a connected set of exactly five cells of the board that looks like a cross. The picture below shows how it looks.
Ciel wants to draw several (may be zero) crosses on the board. Each cross must cover exactly five cells with symbols ‘#’, and any cell with symbol ‘#’ must belong to some cross. No two crosses can share a cell.
Please, tell Ciel if she can draw the crosses in the described way.
Input
The first line contains an integer n (3 ≤ n ≤ 100) — the size of the board.
Each of the next n lines describes one row of the board. The i-th line describes the i-th row of the board and consists of n characters. Each character is either a symbol ‘.’, or a symbol ‘#’.
Output
Output a single line with “YES” if Ciel can draw the crosses in the described way. Otherwise output a single line with “NO”.
Sample Input
Input
5
.#…
.
.####
…#.
…..
Output
YES
Input
4
#
#
#
#
Output
NO
Input
6
.#….
..
.####.
.#.##.
#
.#..#.
Output
YES
Input
6
.#..#.
#
.####.
.####.
#
.#..#.
Output
NO
Input
3
…
…
…
Output
YES
Hint
In example 1, you can draw two crosses.
In example 2, the board contains 16 cells with ‘#’, but each cross contains 5. Since 16 is not a multiple of 5, so it’s impossible to cover all.
题意:给出一张只有.和#的图,问里面的#能不能用十字型的五个#覆盖完全。不能重复覆盖。
代码比较low
#include <iostream>#include <cstring>#include <algorithm>using namespace std;char a[105][105];int ch(int b,int c){ int f=0; if(a[b+1][c]=='#') { a[b+1][c]='.'; f++; } if(a[b+2][c]=='#') { a[b+2][c]='.'; f++; } if(a[b+1][c+1]=='#') { a[b+1][c+1]='.'; f++; } if(a[b+1][c-1]=='#') { a[b+1][c-1]='.'; f++; } if(f==4) return 1; else return 0;}int main(){ int n,s=0; cin>>n; int ff=1; for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { cin>>a[i][j]; if(a[i][j]=='#') { s++; } } } for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { if(a[i][j]=='#') ff=ch(i,j); if(ff==0) { cout<<"NO"<<endl; break; } } if(ff==0) { break; } } if(ff==1) cout<<"YES"<<endl; return 0;}
- codeforces Fox and Cross
- codeforces Fox and Cross
- Codeforces 389B Fox and Cross(dfs)
- 模拟-codeforces-389B-Fox and Cross
- CodeForces 389B Fox and Cross
- codeforces 389b Fox and Cross
- Fox and Cross
- B. Fox and Cross
- vj Fox and Cross
- Codeforces Round #228 (Div. 2) B. Fox and Cross
- Codeforces Round #228 (Div. 2)B. Fox and Cross
- Codeforces Round #228 (Div. 2)B. Fox and Cross
- Codeforces Round #228 (Div. 2) B. Fox and Cross
- CF228B题Fox and Cross
- Codeforces Fox And Snake
- Codeforces Round #228 (Div. 2) B Fox and Cross(DFS)
- CF 389B:Fox and Cross
- codeforces Fox and Box Accumulation
- spring自定义标签
- 2013 Asia Hangzhou Regional Contest
- request.getSession()和request.getSession(true/false)的理解
- 总结iOS 多线程学习过程二
- HDU 1496 hash
- codeforces Fox and Cross
- 04 本地部署(单机模式)
- 欢迎使用CSDN-markdown编辑器
- 《学习opencv》读书笔记及python实现(1)
- Excel 链接的图片
- 自定义控件+自定义属性的小Demo
- muduo库阅读(33)——Net部分:定时器队列TimerQueue
- H5新标签元素学习笔记
- IOS: iPhone键盘通知与键盘定制