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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

洛谷 - P4011 孤岛营救问题(bfs+状态压缩)

發(fā)布時(shí)間:2024/4/11 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 - P4011 孤岛营救问题(bfs+状态压缩) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:點(diǎn)擊查看

題目大意:給出一個(gè)n*m的迷宮,其中有一些邊為不可逾越的墻,有一些邊為不同型號(hào)的門,而鑰匙會(huì)分布在迷宮的不同位置,求從點(diǎn)(1,1)到點(diǎn)(n,m)的最短時(shí)間

題目分析:出現(xiàn)在網(wǎng)絡(luò)流里的一道題目。。但是一道很裸的bfs+狀壓,因?yàn)椴煌T的類型給的特別少,只有10種,如果bfs的話時(shí)間復(fù)雜度也才n*m*2^10,直接搜索就好了

注意一下幾個(gè)坑點(diǎn):

  • 鑰匙是永久性的而不是一次性的
  • 一個(gè)點(diǎn)可以有多把鑰匙
  • 起點(diǎn)也可以有鑰匙
  • 然后就是簡(jiǎn)單的bfs了

    代碼:

    #include<iostream> #include<cstdlib> #include<string> #include<cstring> #include<cstdio> #include<algorithm> #include<climits> #include<cmath> #include<cctype> #include<stack> #include<queue> #include<list> #include<vector> #include<set> #include<map> #include<sstream> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=15;const int b[4][2]={0,1,0,-1,1,0,-1,0};int n,m;int maze[N][N][N][N];//maze[x1][y1][x2][y2]之間是否有墻/門int key[N][N];//key[x][y]有哪些鑰匙 bool vis[N][N][(1<<N)];//標(biāo)記狀態(tài)struct Node {int x,y,step,state;Node(int X,int Y,int STEP,int STATE){x=X;y=Y;step=STEP;state=STATE;} };int bfs() {memset(vis,false,sizeof(vis));queue<Node>q;q.push(Node(1,1,0,key[1][1]));vis[1][1][key[1][1]]=true;while(q.size()){Node cur=q.front();q.pop();if(cur.x==n&&cur.y==m)return cur.step;for(int i=0;i<4;i++){int xx=cur.x+b[i][0];int yy=cur.y+b[i][1];if(xx<=0||yy<=0||xx>n||yy>m)continue;int door=maze[cur.x][cur.y][xx][yy];if(door==-1)//墻 continue;if(door&&!(cur.state&(1<<door)))//沒鑰匙 continue;if(vis[xx][yy][cur.state|key[xx][yy]])continue;vis[xx][yy][cur.state|key[xx][yy]]=true;q.push(Node(xx,yy,cur.step+1,cur.state|key[xx][yy]));}}return -1; }int main() { // freopen("input.txt","r",stdin); // ios::sync_with_stdio(false);int p;scanf("%d%d%d",&n,&m,&p);int k;scanf("%d",&k);while(k--){int x1,x2,y1,y2,g;scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&g);if(g)//門 maze[x1][y1][x2][y2]=maze[x2][y2][x1][y1]=g;else//墻 maze[x1][y1][x2][y2]=maze[x2][y2][x1][y1]=-1;}scanf("%d",&k);while(k--){int x,y,g;scanf("%d%d%d",&x,&y,&g);key[x][y]|=(1<<g);}printf("%d\n",bfs());return 0; }

    ?

    總結(jié)

    以上是生活随笔為你收集整理的洛谷 - P4011 孤岛营救问题(bfs+状态压缩)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 韩国在线不卡 | 在线a网| 亚洲福利一区 | 国产精品久久影院 | www99热| 男人深夜网站 | 国产精品国产三级国产在线观看 | 看全黄大色黄大片美女人 | 综合激情网五月 | 全黄毛片 | 美女性生活视频 | 国产sm调教视频 | 日韩人妻无码精品久久免费 | 色呦呦网站在线观看 | 国产污网站 | 久久综合九色 | 五月天精品 | 粗喘呻吟撞击猛烈疯狂 | 久久久久久久久一区 | 久久久精品久 | 成人精品视频网站 | 色婷婷国产精品久久包臀 | 天天天操| 日本三级中文 | 国产女人高潮时对白 | 亚洲丝袜av | 91蜜桃婷婷狠狠久久综合9色 | 黄色欧美视频 | 99国产精品99久久久久久 | www.av黄色| 国产精品国产一区二区三区四区 | 精品国产av一区二区三区 | 免费观看一级黄色片 | 亚洲 欧美 国产 另类 | 亚洲最大av网 | 国产福利视频在线 | 丰满少妇高潮在线观看 | 久久精品中文字幕 | 欧美激情视频一区二区 | 日韩在线观看网址 | 中国性xxx | 一区二区三区精品视频在线观看 | 日韩人妻无码精品久久免费 | 99久久99久久免费精品蜜臀 | 91黄色影视| 亚洲成人国产 | 97超碰人人干 | 日本在线观看www | 成年人免费观看视频网站 | 国产一区二区三区乱码 | 一级福利视频 | 在线视频免费观看 | 黄色视屏软件 | 美女极度色诱图片www视频 | 91精品国产综合久久国产大片 | 国产男女无套免费网站 | 91欧美一区二区 | 免费成人小视频 | 国产成人一区二区三区免费看 | 国产精品视频在线免费观看 | 亚洲天堂成人在线 | 91免费版视频 | 精品人妻无码一区二区性色 | 亚洲69| 尤物视频在线观看免费 | 西西44rtwww国产精品 | 成年人的免费视频 | 自拍偷拍亚洲天堂 | 色啊色| japanese在线观看 | 奴性女会所调教 | 秋霞福利片 | 激情五月色婷婷 | 欧美日本 | 美女一区二区三区四区 | 羞羞成人 | 高潮白浆女日韩av免费看 | 少妇av在线 | 91理论片午午伦夜理片久久 | 国产尤物视频 | 亚洲欧美激情在线观看 | 国产三级自拍 | 鲁丝一区二区三区 | 夜夜夜夜操 | 麻豆tv在线观看 | 国产美女福利 | 在线观看网站污 | 中文av资源| 舒淇裸体午夜理伦 | 99久在线精品99re8热 | 黑人vs日本人ⅹxxxhd | 在线免费小视频 | 在线看国产精品 | 丁香婷婷色 | 四虎影院在线视频 | 久久综合婷婷 | 欧美精品一二三四区 | 国产成人精品视频 | 亚洲av无码一区二区三区网址 |