洛谷P4011 孤島營救問題(狀壓 BFS)

2022-03-01 14:50:39 字數 903 閱讀 1657

傳送門

和網路流有半毛錢關係麼……

可以發現$n,m,p$都特別小,那麼考慮狀壓,每乙個狀態表示位置以及鑰匙的擁有情況,然後每次因為只能走一步,所以可以用bfs求出最優解

然後是某大佬說的注意點:每個點可以有很多鑰匙,而且初始點也有可能有鑰匙

1

//minamoto

2 #include3 #include4 #include5

using

namespace

std;

6#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?eof:*p1++)

7char buf[1

<<21],*p1=buf,*p2=buf;

8 inline int

read()

18const

int n=11;19

int vis[n][n][(1

<20struct

node

23 node(int x,int y,int step,int

now):x(x),y(y),step(step),now(now){}

24};

25 queueq;

26int dx=,dy=;

27int

n,m,p,k;

28int

bfs()50}

51return -1;52

}53intmain()

61int s=read();

62for(int i=1;i<=s;++i)

66 printf("

%d\n

",bfs());

67return0;

68 }

P4011 孤島營救問題

p4011 孤島營救問題 輸入 449 9121 3212 2202 1220 2131 0233 3024 3413 2330 3343 0434 4022 1242 1輸出 14 原題太長我就不貼了,簡單敘述一下 乙個n m的迷宮,每個單元格之間可能有門或者牆,也可能啥也沒有。門和牆的總數為k ...

P4011 孤島營救問題

1944 年,特種兵麥克接到國防部的命令,要求立即趕赴太平洋上的乙個孤島,營救被敵軍俘虜的大兵瑞恩。瑞恩被關押在乙個迷宮裡,迷宮地形複雜,但幸好麥克得到了迷宮的地形圖。迷宮的外形是乙個長方形,其南北方向被劃分為 n 行,東西方向被劃分為 m 列,於是整個迷宮被劃分為 n times m 個單元。每乙...

洛谷4011 孤島營救問題(狀壓SPFA)

點此看題面 大致題意 有乙個 n m 的四聯通迷宮,相鄰兩個可能互通,可能有一扇門,也可能有一堵牆。對於第 i 類的門,你需要有第 i 類的鑰匙才可以通過。問你從 1,1 到達 n,m 的最短路。看到種類數 10 應該不難想到狀壓吧!而且,我們還可以給每個格仔乙個編號 計算方法 pos x,y x ...