牛客練習賽12 B 迷宮

2021-08-15 16:41:49 字數 696 閱讀 3510

牛客練習賽12 b、迷宮

*這道題比以前的迷宮問題多了一道門『d』,必須有『k』才能過門;

*以前我們用bfs搜尋來解決這種問題,每個『.』只能經過一次;而此時每個『.』能夠經過兩次,分別為有『k』和無『k』;

#include #include #include #include #include #include #define size 600

using namespace std;

int h,w;

char a[size][size];

int flag[size][size][2];

struct cell first;

int x[4]=;

int y[4]=;

int bfs()

else if(a[v.x][v.y]=='d'&&v.key==0)continue;

else if(a[v.x][v.y]=='e') return v.teps;

flag[v.x][v.y][v.key]=1;

queue.push(v);}}

return -1;

}int main()

}memset(flag,0,sizeof(flag));

printf("%d\n",bfs());

return 0;

}

牛客練習賽12 B 迷宮 BFS

這是乙個關於二維迷宮的題目。我們要從迷宮的起點 s 走到終點 e 每一步我們只能選擇上下左右四個方向中的乙個前進一格。w 代表牆壁,是不能進入的位置,除了牆壁以外的地方都可以走。迷宮內的 d 代表一道上鎖的門,只有在持有鑰匙的時候才能進入。而 k 則代表了鑰匙,只要進入這一格,就會自動地拿到鑰匙。最...

牛客練習賽12 B 迷宮 BFS

這是乙個關於二維迷宮的題目。我們要從迷宮的起點 s 走到終點 e 每一步我們只能選擇上下左右四個方向中的乙個前進一格。w 代表牆壁,是不能進入的位置,除了牆壁以外的地方都可以走。迷宮內的 d 代表一道上鎖的門,只有在持有鑰匙的時候才能進入。而 k 則代表了鑰匙,只要進入這一格,就會自動地拿到鑰匙。最...

牛客練習賽4 B

思維題,把 i2 j2 ai2 aj2 絕對值符號去掉後,我們設i2 j2 ai2 aj2 j2 i2 aj2 ai2 j2 aj2 i2 ai2 或者 i2 j2 ai2 aj2 j2 i2 aj2 ai2 ai2 i2 aj2 j2 原式化簡後只有這兩種形式,那麼我們可以設定兩個陣列a n b ...