• P1913 L国的战斗之伞兵


    题目链接

    P1913 L国的战斗之伞兵

    思路

    从无风点倒着dfs,本来是道大水题,结果输入的时候第二层循环打错了!手残打成i++

    代码

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<map>
    #include<string>
    #include<cstring>
    using namespace std;
    inline int read() {
    	char c = getchar();
    	int x = 0, f = 1;
    	while(c < '0' || c > '9') {
    		if(c == '-') f = -1;
    		c = getchar();
    	}
    	while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
    	return x * f;
    }
    char a[1001][1001];
    int n,m;
    bool is_ok[1001][1001];
    void dfs(int x,int y) {
    	is_ok[x][y]=true;
    	if(a[x+1][y]=='u'&&x+1<=n) dfs(x+1,y);
    	if(a[x-1][y]=='d'&&x-1>=1) dfs(x-1,y);
    	if(a[x][y+1]=='l'&&y+1<=m) dfs(x,y+1);
    	if(a[x][y-1]=='r'&&y-1>=1) dfs(x,y-1);
    }
    signed main() {
    	cin>>n>>m;
    	for(int i=1; i<=n; ++i) {
    		for(int j=1; j<=m; ++j) {
    			cin>>a[i][j];
    		}
    	}
    	/*“u”表示风向北吹;“d”表示风向南吹;“l”表示风向西吹;
    	“r”表示风向东吹;“o”表示无风。(上北下南,左西右东)*/
    	for(int i=1; i<=n; ++i) {
    		for(int j=1; j<=m; ++j) {
    			if(a[i][j]=='o') {
    				dfs(i,j);
    			}
    		}
    	}
    	int ans=0;
    	for(int i=1;i<=n;++i)
    	{
    		for(int j=1;j<=m;++j)
    		{
    			if(is_ok[i][j])
    			{
    				ans++;
    			}
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    
    $$Life quad is quad fantastic!$$
  • 相关阅读:
    [小知识]如何查看IIS6应用程序池所对应的进程ID
    继续向大家汇报服务器情况
    CNBlogs DotText 1.0 Beta 2 重要更新
    垃圾广告记录
    Firefox 11正式发布
    Firefox 10正式发布
    Firefox 6 正式发布
    Firefox 5 正式发布
    Firefox 9正式发布
    Firefox 8正式发布
  • 原文地址:https://www.cnblogs.com/pyyyyyy/p/10910898.html
Copyright © 2020-2023  润新知