2017省赛A第1题
注意事项
注意更换状态
#include<bits/stdc++.h> using namespace std; char maps[11][11]; int vis[11][11]; int ans=0; void input() { ifstream infile; infile.open("input.txt"); for(int i=1;i<=10;i++){ for(int j=1;j<=10;j++){ infile>>maps[i][j]; } } } void dfs(int x,int y) { if(x<1||x>10||y<1||y>10){ ans++; return ; } if(vis[x][y]==1) return; vis[x][y]=1;//注意更换状态 if(maps[x][y]=='U') dfs(x-1,y); if(maps[x][y]=='D') dfs(x+1,y); if(maps[x][y]=='L') dfs(x,y-1); if(maps[x][y]=='R') dfs(x,y+1); return; } void print() { for(int i=1;i<=10;i++){ for(int j=1;j<=10;j++){ cout<<maps[i][j]<<" "; } cout<<endl; } } int main() { input(); for(int i=1;i<=10;i++){ for(int j=1;j<=10;j++){ memset(vis,0,sizeof(vis)); dfs(i,j); } } //print(); cout<<ans; return 0; }