40求助!!!
查看原帖
40求助!!!
359492
BZHZS楼主2021/6/20 22:54
#include <bits/stdc++.h>
#define BZHZS puts("BZHZS"); 
#define ll long long
#define pi 3.141592653589793238462643383279502884
using namespace std;

bool flag[30][30];
char a[30][30];
int n, m, ba, bb, ans;
int dx[] = {-1, -1, +1, 1, -1, +0, 0, 1};
int dy[] = {-1, +1, -1, 1, +0, -1, 1, 0};

void dfs (int x, int y)
{
	flag[x][y] = 1;
	for (int i=0; i<=7; i++)
	{
		int popx = x+dx[i];
		int popy = y+dy[i];
		if (popx>=1 && popx<=n && popy>=1 && popy<=m && flag[popx][popy]==0 && a[popx][popy]=='X')
			dfs (popx, popy);
		if (i>=4 && (popx<=0||popx>m||popy<=0||popy>n||a[popx][popy]!='X'))
			ans++;
	}
}

int main()
{
	ios :: sync_with_stdio (0);
	//freopen ("BZHZS.in" , "r" , stdin);
	//freopen ("BZHZS.out" , "w" , stdout);

    cin >> n >> m >> ba >> bb;
    for (int i=1; i<=n; i++)
    	for (int j=1; j<=m; j++)
    		cin >> a[i][j];
    		
    dfs (ba, bb);
    
    cout << ans << endl;

    return 0;
}
2021/6/20 22:54
加载中...