--------------------------------------------------------------
这是一道搜索水题
(都橙题了能不水吗)
----------------------------------------------------------------
链接:P1913
---------------------------------------------------------------
这道题只要搜索就行了。
边界条件?不用考虑的。
因为这是字符串,我们在搜索时要考虑风向(字母)
然而在边界上是个空字符,也不用搜。
至于vis,如果你是倒着搜索的,就是从无风点开始,也不用考虑(因为风向)
----------------------------------------------------------------
1 #include <iostream> 2 #include<cstdio> 3 using namespace std; 4 char map[1001][1001]; 5 int n,m; 6 int ans; 7 int x1,y1; 8 void dfs(int x,int y){ 9 ans++; 10 if(map[x-1][y]=='d') 11 dfs(x-1,y); 12 if(map[x+1][y]=='u') 13 dfs(x+1,y); 14 if(map[x][y-1]=='r') 15 dfs(x,y-1); 16 if(map[x][y+1]=='l') 17 dfs(x,y+1); 18 return ; 19 } 20 int main(){ 21 scanf("%d%d",&n,&m); 22 for(int i=1;i<=n;++i) 23 for(int j=1;j<=m;++j){ 24 cin>>map[i][j]; 25 } 26 for(int i=1;i<=n;++i) 27 for(int j=1;j<=m;++j){ 28 if(map[i][j]=='o') 29 dfs(i,j); 30 } 31 printf("%d",ans); 32 return 0; 33 }