文章

28

粉丝

226

获赞

53

访问

143.8k

头像
请教,不知道哪里错了,感觉思路正确的。毒气动不了人就停也考虑了。
Sacan SVIP
P1124
发布于2022年6月29日 11:51
阅读数 5.0k

#include <iostream>
#include <cstring>
#include <queue>
#include <vector>
using namespace std;

const int len = 105;
// 迷宫
char gra[len][len];
// 方向
int dir[4][2] = {-1,0,1,0,0,-1,0,1};

struct node{
    int x,y;
    char v;
};

int bfs(node G, node S, int t){
    int alive = 1;
    vector<queue<node>> que(t+1, queue<node>());
    que[0].push(G);
    que[0].push(S);

    for(int i = 0;i < t;i++){
        int Gflag = 0;
        while(!que[i].empty()){
            node now = que[i].front();
            que[i].pop();

            if(now.v == 'G'){
                for(int j = 0;j < 4;j++){
                    int x = now.x + dir[j][0];
                    int y = now.y + dir[j][1];
                    if(gra[x][y] != 'X' && gra[x][y] != 'G'){
                        Gflag = 1;
                        if(gra[x][y] == 'S'){
                            alive--; // 2,4
                        }
 ...
登录查看完整内容


登录后发布评论

1 条评论
admin SVIP
2022年6月30日 00:46

一旦气体无法扩散,人也就不会走了,可以直接break。如何判断气体无法扩散呢?只要一次扩散过程中气体的格数不再增加即可。

赞(0)