本人是noip2018省二的蒟蒻,最近練習狀壓,總感覺樓下的題解晦澀難懂,我決定自己寫一篇題解造福一下廣大蒟蒻
首先看資料範圍就猜到了狀壓dp……
設f[i]表示完成狀態i(二進位制位,狀壓)這些歌獲得的獎勵;
則答案為f[(1《對於乙個狀態i,若第j首歌沒完成,即i&(1具體實現請見**
1 #include 2 #include 3 #include 4using
namespace
std;
5int n,m,t,f[1
<<23];6
int timee[25],s[25
],tot;
7char name[25][51];8
int tt[1
<<23],bef[1
<<23],ans[1
<<23];9
void printans(int
now)
14int
main()
21 memset(f,-1,sizeof
(f));
22 f[0]=0;23
for(int i=0;i<1
<) 34}
35}36if(tot>t||f[(1
<1]40 printf("
%d\n
",f[(1
<1
]);41 printans((1
<1
);42
return0;
43 }
time變數在洛谷上評測好像ce,所以只能用timee了
ps:獎勵可能是負數,所以和0取乙個max即可
洛谷P3947 肝活動 狀壓DP
題目描述 這樣的規則對 yume 這樣的老玩家來說本應是輕而易舉,但不巧的是 yume 把活動的結束時間記成了活動的開始時間,以至於當他上線躍躍欲試的時候,驚恐地發現活動已經快要結束了。現在他想知道,在剩餘的時間之內,他能否完成所有的歌 達成獎勵的分數線拿到活動卡。為了節省時間,他把這個問題交給了你...
洛谷P5049 洛谷P5022 題解 旅行
原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...
洛谷練習P2279 P1346
2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...