/*
ID:lvfuan11
PROG:castle
LANG:C++
translation: 见usanocow
solution:
flood fill的经典模型。dfs即可。注意题目要求选择最靠西边的墙,意味着同一个各自内,该格的北墙的优先级是比西墙高的!
因为北墙更靠近西边。
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 55;
const int dir_row[] = {-1, 1, 0, 0};
const int dir_col[] = {0, 0, -1, 1}; //上下左右
int mat[maxn][maxn], n, m;
int vis[maxn][maxn], area[maxn*maxn];
bool wall[maxn][maxn][4];
bool isWall(int r, int c, int d)
{
if(d == 0 && mat[r][c] & 2) return true;
if(d == 1 && mat[r][c] & 8) return true;
if(d == 2 && mat[r][c] & 1) return true;
if(d == 3 && mat[r][c] & 4) return true;
return false;
}
inline bool inside(int x, int y)
{
return x >= 0 && x < n && y >= 0 && y < m;
}
void dfs(int r, int c, int tag)
{
vis[r][c] = tag;
07-15
07-15
07-15
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交