天天看點

狀壓dp

hdoj-1074:

題意就是:有n個作業每個作業有一個最後完成時間和一個需要的時間,如果超過最後完成的時間,超過一天扣一分,求最少要扣多少分

思路:根據題意 n最多有15,是以把狀态壓縮成2進制,每一位0表示還沒有選 1 表示選了,狀态轉移就是 前一個轉态到後一個 根據二進制的性質

,最後還要輸出路徑,是以要 保留他,用一個結構體保留他的前驅和他由前驅到現在 需要完成那個作業;

代碼;

狀壓dp
狀壓dp

View Code