P1913 L国的战斗之伞兵

--------------------------------------------------------------

这是一道搜索水题

(都橙题了能不水吗)

----------------------------------------------------------------

链接: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 }
AC

猜你喜欢

转载自www.cnblogs.com/For-Miku/p/11332198.html