Advertisement

AcWing 1098城堡问题题解(BFS与位运算)

阅读量:

AcWing 1098 城堡问题
BFS的应用题,需要注意的是,因为四个方向的数字刚好代表四位二进制数,所以可以用位运算操作,判断哪一块空间某个方向是否有墙。用宽搜遍历所有空间即可得出答案

复制代码
    #include<bits/stdc++.h>
    
    using namespace std;
    
    const int N = 55;
    
    #define x first
    #define y second
    
    typedef pair<int, int>PII;
    
    PII q[N * N];
    int n, m;
    int g[N][N];
    bool st[N][N];
    int dx[4] = {0, -1, 0, 1};
    int dy[4] = {-1, 0, 1, 0};
    int ans;
    int op;
    
    int bfs(int sx, int sy){
    	st[sx][sy] = true;
    	int hh = 0, tt = 0;
    	q[0] = {sx, sy};
    	int res = 1;

全部评论 (0)

还没有任何评论哟~