牛客練習賽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 ...