【codeforce-510B】fox and two dots
来源:互联网 发布:高斯模糊算法 cpu消耗 编辑:程序博客网 时间:2024/05/16 06:09
Fox Ciel is playing a mobile puzzle game called “Two Dots”. The basic levels are played on a board of size n × m cells, like this:
Each cell contains a dot that has some color. We will use different uppercase Latin characters to express different colors.
The key of this game is to find a cycle that contain dots of same color. Consider 4 blue dots on the picture forming a circle as an example. Formally, we call a sequence of dots d1, d2, …, dk a cycle if and only if it meets the following condition:
These k dots are different: if i ≠ j then di is different from dj.
k is at least 4.
All dots belong to the same color.
For all 1 ≤ i ≤ k - 1: di and di + 1 are adjacent. Also, dk and d1 should also be adjacent. Cells x and y are called adjacent if they share an edge.
Determine if there exists a cycle on the field.
Input
The first line contains two integers n and m (2 ≤ n, m ≤ 50): the number of rows and columns of the board.
Then n lines follow, each line contains a string consisting of m characters, expressing colors of dots in each line. Each character is an uppercase Latin letter.
Output
Output “Yes” if there exists a cycle, and “No” otherwise.
Example
Input
3 4
AAAA
ABCA
AAAA
Output
Yes
Input
3 4
AAAA
ABCA
AADA
Output
No
Input
4 4
YYYR
BYBY
BBBY
BBBY
Output
Yes
Input
7 6
AAAAAB
ABBBAB
ABAAAB
ABABBB
ABAAAB
ABBBAB
AAAAAB
Output
Yes
Input
2 13
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
Output
No
Note
In first sample test all ‘A’ form a cycle.
In second sample there is no such cycle.
The third sample is displayed on the picture above (‘Y’ = Yellow, ‘B’ = Blue, ‘R’ = Red).
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int n,m,flag=0;char c[55][55];int vis[55][55];int s;int a,b;int fx[4]={0,0,1,-1},fy[4]={1,-1,0,0};void dfs(int x,int y,int nl){ if(s) return ; vis[x][y]=1; for(int i=0;i<4;i++) { int xx=x+fx[i],yy=y+fy[i]; if(xx==a&&yy==b&&nl>=3) { s=1; return; } if(xx>=0&&yy>=0&&xx<n&&yy<m&&!vis[xx][yy]&&c[xx][yy]==c[x][y]) { dfs(xx,yy,nl+1); } }}int main(){ scanf("%d%d",&n,&m); memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) scanf("%s",c[i]); s=0; for(int j=0;j<n;j++) { for(int i=0;i<m;i++) { if(!vis[j][i]) { a=j; b=i; memset(vis,0,sizeof(vis)); dfs(j,i,0); } } } if(s) printf("Yes\n"); else printf("No\n"); return 0;}
- 【codeforce-510B】fox and two dots
- codeforce-B. Fox And Two Dots
- CodeForces 510B Fox And Two Dots
- 【CodeForces 510B】Fox And Two Dots
- Codeforces 510B. Fox And Two Dots
- codeforces 510b Fox And Two Dots
- B. Fox And Two Dots
- B. Fox And Two Dots
- B. Fox And Two Dots
- B. Fox And Two Dots
- CodeForces 510B B. Fox And Two Dots
- CF 510B(Fox And Two Dots-图上找环)
- CodeForces 510 B. Fox And Two Dots(DFS)
- Codeforces 510B Fox And Two Dots DFS
- CodeForces 510B Fox And Two Dots(图论-回路判定)
- codeforces-510B-Fox And Two Dots【DFS】
- CodeForces 510B Fox And Two Dots(DFS)
- CodeForces 510B Fox And Two Dots (DFS)
- 最近的一些计划
- socketIO服务器,安卓,js端使用代码
- 几篇有关CSS的文章
- 解决maven删除和重新安装的问题
- #leetcode#130. Surrounded Regions
- 【codeforce-510B】fox and two dots
- 字符串问题---添加最少字符使字符串整体都是回文字符串
- 利用fir.im提供的api接口实现android apk自动更新和手动更新
- URL中“#” “?” &“”号的作用
- spring boot banner的设置
- HDU6154 CaoHaha's staff(规律,2017中国大学生程序设计竞赛
- JMeter安装步骤
- Excel要不要“引”
- UVA