1416 两点
Posted biubiuwham
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1416 两点相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; char map[55][55]; int v[55][55]; int flag; int n,m; int dir [4][2]={0,1,1,0,0,-1,-1,0}; void dfs(int x,int y,int d,char f) { if(x>n||x<0||y<0||y>m||map[x][y]!=f) { return; } if(v[x][y]==1) { flag=1; return; } v[x][y]=1; for(int i=0;i<4;i++) { if (d==0&&i==2) continue; if (d==1&&i==3) continue; if (d==2&&i==0) continue; if (d==3&&i==1) continue; int dx=x+dir[i][0]; int dy=y+dir[i][1]; dfs(dx,dy,i,f); } } int main() { while(cin>>n>>m) { memset(v,0,sizeof(v)); for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin>>map[i][j]; for(int i=0;i<n;i++) for(int j=0;j<m;j++) { if(v[i][j]!=1) { dfs(i,j,-1,map[i][j]); } } if(flag==1)cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }
以上是关于1416 两点的主要内容,如果未能解决你的问题,请参考以下文章
UVA1416/LA4080 Warfare And Logistics
片段中的Android Snackbar NullPointerException