HDU 1074 狀態壓縮dp

2021-07-08 10:33:11 字數 615 閱讀 3606

//起初想到貪心沒思路 看了題解 狀態壓縮dp 最多15個狀態

// [1, 1<#include "stdio.h"

#include "stdlib.h"

#include "string.h"

#include "algorithm"

#include #include #define n (1 << 15) + 5

#define inf 1<<30

using namespace std;

int dp[n], time[n], pre[n], n, ans; //dp[n]存放到達各個狀態最少的扣分數,time[n]存放到達各個狀態扣分最少所需的時間,pre[n]各個狀態的前驅

stacksta;

struct node subjuct[20]; //各個科目的作業

int main()}}

}printf("%d\n", dp[ans - 1]);

int tmp = ans - 1;

while(tmp) //找前驅併入棧

while(!sta.empty()) //輸出結果

}return 0;

}

hdu 1074 狀態壓縮dp

題目描述 有 n 門課程的作業,每門都有完成期限d,與完成所需時間c,若超過期限,1天扣1分。問完成這n門作業至少要扣多少分,並輸出扣分最少的做作業順序。思路 dp i 記錄完成狀態為i的情況下的資訊。完成所需時間,上乙個狀態,最小扣分 狀態方程 dp i min dp j cost j,i 從j狀...

HDU 1074 (狀態壓縮dp)詳解

題目意思 ignatius同學,快到期末了結果還有好多課程沒有完成,每門課作業都有對應的截至日期,和完成它所需的時間,超過截至日期後,沒多一天扣1分,現在文他該如何安排寫作業的順序使得被扣的分最少?輸入要求 t組資料,n門課,每門課的截至日期和完成所需的時間 輸出要求 被扣的分,和寫作業的順序。如果...

hdu1074狀態壓縮

很明顯的狀態壓縮題目。當然了如果他的意識只有是求最小值沒有要求輸出那個輸出的順序,那麼直接用揹包,甚至是貪心都是可以做出來的,但是要求順序這個揹包的話沒有辦法吧資料記錄下來。所以用二進位制壓縮。所謂的二進位制壓縮就是用二進位制來表示事情的完成程度和狀況,比如1,就是0000001表示第乙個作業做了,...