本來說好了再做一下之前沒寫起的題的,但是看到隊友寫了這道題手還是比較癢,於是就寫了。
——————————————————————————————————————————
這道題和之前寫的拯救大兵很相似,不同點在於這道題沒有任何限制的收集光玉。並且題目中說的不存在環,所以是滿足拓撲序的,而且光玉的數量很少,可以使用狀壓。所以就想到了bfs+狀壓。
因為不知道以哪個點為起點,所以我們直接用超級源點和這些點練了乙個權值為0的邊。然後就是跑拓撲序dp一下就可以了。
#include
//#define int long long
using
namespace std;
typedef pair<
int,
int> pp;
const
int n=
105,m=
1e4+7;
int e[m]
,ne[m]
,head[m]
,w[m]
,cnt,n,m,k;
int a[n]
;const
int t=
1<<14;
int f[n]
[t],vis[n]
[t];
void
add(
int a,
int b,
int c)
queue q;
void
bfs(
int x));
while
(!q.
empty()
)); vis[j]
[tmp]=1
;}}}
}}intmain()
for(
int i=
1;i<=n;i++
)add(0
,i,0);
bfs(0)
;int ans=
0x3f3f3f3f
;for
(int i=
1;i<=n;i++
) ans=
min(ans,f[i][(
1<]);if
(ans==
0x3f3f3f3f
) cout<<
"ushio!"
2018 10 03 迷宮遊戲(狀壓 bfs)
描述 pluto 已經很久沒有玩遊戲了,今天 pluto 難得能夠歇一天。於是,pluto 決定要玩乙個非常好玩的迷宮遊戲。這個迷宮遊戲在乙個 n 行 m 列的矩陣上進行,遊戲中的任意時刻不能走出這個矩陣。在這個矩陣中,有下列幾種元素 表示一塊平地。x 表示一堵牆,不能經過。s 表示遊戲的起點,有且...
HDU 5094 題解(狀壓BFS)
maze 題目中文大意 這個故事發生在 星際迷航 的背景下。星際爭霸 的副隊長史波克落入克林貢的詭計中,被關押在他們的母親星球qo nos上。企業的上尉詹姆斯 t 柯克 james t.kirk 不得不乘宇宙飛船去救他的副手。幸運的是,他偷走了史波克所在的迷宮地圖。迷宮是乙個矩形,它有n行垂直和m列...
bfs 狀壓 Jzoj P2121 分球
description input 輸入檔案包含多組資料。第一行為k,表示資料的總數。每組資料的第一行是n 3 n 7 第二行是2n個盒子的初始狀態。金球用a表示,銀球用b表示,空盒用空格表示。每兩組相鄰資料用空行隔開。output 對於每一組資料,若無解則輸出一行 1,若有解,輸出最少移動次數,相...