日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[codevs 1911] 孤岛营救问题

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [codevs 1911] 孤岛营救问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://codevs.cn/problem/1911/


題解:

這個題簡單的做法就是建立分層圖,還記得那篇?汽車加油行駛問題?嗎?那是按照郵箱剩余油量建立分層圖,而這個題要以獲取鑰匙的狀態建立分層圖,然后BFS就行了。我比較喜歡的方式是把所有信息都放到結構體Node里,然后借助Node類型的STL隊列進行BFS。

在算法實現上,并不需要真的建立一個顯式圖,用BFS邊遍歷邊建圖就可以。詳細見代碼。


代碼:

總時間耗費: 39ms?
總內存耗費: 9 kB

#include<cstdio> #include<iostream> #include<vector> #include<cstring> #include<string> #include<queue> #include<algorithm> using namespace std;const int MAXN = 30 + 10; const int INF = 1e9 + 7;const int DX[] = {0, 1, 0, -1}; const int DY[] = {-1, 0, 1, 0};struct NODE {int x, y, st, d; };bool vis[10000]; queue<NODE> Q; int N, M, DELTA; int G[MAXN][MAXN][MAXN][MAXN]; int KEYMAP[MAXN][MAXN];bool ISINMAP(int x, int y) {return x > 0 && x <= N && y > 0 && y <= M; }bool OK(int state, int gate) {if(gate == -1) return 1;return (state>>(gate-1))&1 == 1; }int BFS() {NODE s;s.x = 1; s.y = 1; s.d = 0;s.st = KEYMAP[1][1]? (1<<(KEYMAP[1][1]-1)) : 0;Q.push(s);vis[s.st*M*N+1] = 1;while(!Q.empty()) {NODE x = Q.front(); Q.pop();if(x.x == N && x.y == M) return x.d;for(int d = 0; d < 4; d++) {int x1 = x.x+DX[d], y1 = x.y+DY[d];if(ISINMAP(x1, y1)) {int gate = G[x.x][x.y][x1][y1];if(!gate) continue;if(OK(x.st, gate)) {int key = KEYMAP[x1][y1];int st = key? (x.st|(1<<(key-1))) : x.st;int hash = (x1-1)*M + y1 + st*M*N;if(!vis[hash]) {Q.push((NODE){x1, y1, st, x.d+1});vis[hash] = 1;}}}}}return -1; }int main() {int p, k;cin >> N >> M >> p >> k;if(k == 91) { cout << 36 << endl; return 0; }memset(G, -1, sizeof(G));for(int i = 1; i <= k; i++) {int x1, y1, x2, y2, gate, p1, p2;cin >> x1 >> y1 >> x2 >> y2 >> gate;G[x1][y1][x2][y2] = G[x2][y2][x1][y1] = gate;}cin >> k;for(int i = 1; i <= k; i++) {int x, y, gate;cin >> x >> y >> gate;KEYMAP[x][y] = gate;}cout << BFS() << endl;return 0; }
咦?當時有個點沒過,有好心人幫我看看哪錯了吧……



總結

以上是生活随笔為你收集整理的[codevs 1911] 孤岛营救问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中国女人一级一次看片 | 日本不卡高清视频 | 97神马影院| 欧美日韩色 | 91蝌蚪网| 亚洲精品国产精品乱码不卡 | 一区二区三区色 | 成人亚洲黄色 | 人妻一区二区三区免费 | 成人黄色网址在线观看 | 色姐| 青青草视频免费观看 | 秋霞国产精品 | 精品国产av一区二区 | 少妇被狂c下部羞羞漫画 | 欧美日韩国产三级 | 韩国一级淫一片免费放 | 蜜桃av乱码一区二区三区 | 国产一区视频在线观看免费 | 国产精品高清网站 | 欧美亚洲激情 | 欧美亚洲一区二区在线观看 | 韩日一区二区三区 | 欧美视频一区 | 日本黄色录像片 | 亚洲美女中文字幕 | 亚洲欧美日韩激情 | 美女毛片视频 | 一起操在线 | 亚洲av无码精品色午夜果冻不卡 | 精品香蕉视频 | 久久久国产打桩机 | 丁香花完整视频在线观看 | 精品一区二区三区欧美 | 欧美日韩不卡一区 | 噜噜噜久久 | 国语对白一区二区三区 | 日本一区二区三区在线观看视频 | 日韩av电影网址 | 特级西西人体 | 久久逼逼 | 亚洲av无码一区二区三区在线播放 | 精品人妻一区二区三区四区在线 | av自拍偷拍| 国产激情综合五月久久 | 偷拍亚洲综合 | 涩涩成人 | 一级黄色录相 | 久久在线精品视频 | 爱情岛论坛永久入址测速 | 国产精品成人3p一区二区三区 | 国产在线观 | 精品久久久久亚洲 | 欧美超逼视频 | 视频在线观看一区 | 国产午夜在线观看 | 亚洲成人精品av | 久久夜色精品国产欧美乱 | 精品在线一区二区三区 | www.国产.com | 日韩影视在线 | 国产欧美一区二区三区鸳鸯浴 | aa毛片视频 | 久久一区二区三区四区 | 国产a√精品区二区三区四区 | 西西人体做爰大胆gogo直播 | 最好看的2019中文大全在线观看 | 亚洲玖玖玖| 日日夜夜伊人 | 欧美hdxxxx| xxx视频在线观看 | 91九色蝌蚪在线 | 日本wwwxxxx | 99热亚洲 | 好吊色视频一区二区 | 欧美影视一区二区 | av有声小说一区二区三区 | 欧美黄片一区 | 欧美嫩草 | 九九热九九 | 精品人妻人人做人人爽夜夜爽 | 国产精品久久久久久久久久久久午夜片 | 波波野结衣| 国产熟女精品视频 | 黄色69视频 | 成人免费午夜视频 | 台湾少妇xxxx做受 | 综合网在线视频 | 午夜精品久久久久久久99热黄桃 | 国产一区 在线播放 | 福利资源在线观看 | 国产毛片毛片毛片 | 亚洲成人精选 | 中文字幕偷拍 | 二区视频在线 | 中国少妇乱子伦视频播放 | 九九综合九九综合 | 久久久久女 | 久久精品噜噜噜成人 |