P1280 尼克的任務

2022-08-13 01:18:19 字數 638 閱讀 6647

這道題應該要倒推來做dp。

別人說順推也可以,但我又不會刷表啊!剛才刷了一遍全部wa。

那我們就乖乖地倒推。

我一開始想定義狀態的時候就錯了。只需要定義\(dp[i]\)一維就可以了,因為這些任務一定會被做。

我們考慮的有兩種決策:

發現這些任務可能是亂的,所以我們可以排序。

很重要的一點:定義乙個num變數,表示當前已經做了num個任務。

然後我們就按照遞推思路寫dp即可。詳情看**:

#include#includeconst int maxn = 10005;

struct nodes

s[maxn];

int dp[maxn];

int sum[maxn];

int num = 1;//

int n, m;

bool cmp(const nodes a, const nodes b)

int main()

std::sort(s + 1, s + 1 + m, cmp);

for(int i = n; i >= 1; i--)}}

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

return 0;

}

P1280 尼克的任務

題目描述 尼克每天上班之前都連線上英特網,接收他的上司發來的郵件,這些郵件包含了尼克主管的部門當天要完成的全部任務,每個任務由乙個開始時刻與乙個持續時間構成。尼克的乙個工作日為n分鐘,從第一分鐘開始到第n分鐘結束。當尼克到達單位後他就開始幹活。如果在同一時刻有多個任務需要完戍,尼克可以任選其中的乙個...

P1280 尼克的任務

題目描述 尼克每天上班之前都連線上英特網,接收他的上司發來的郵件,這些郵件包含了尼克主管的部門當天要完成的全部任務,每個任務由乙個開始時刻與乙個持續時間構成。尼克的乙個工作日為n分鐘,從第一分鐘開始到第n分鐘結束。當尼克到達單位後他就開始幹活。如果在同一時刻有多個任務需要完成,尼克可以任選其中的乙個...

P1280 尼克的任務

尼克每天上班之前都連線上英特網,接收他的上司發來的郵件,這些郵件包含了尼克主管的部門當天要完成的全部任務,每個任務由乙個開始時刻與乙個持續時間構成。尼克的乙個工作日為n分鐘,從第一分鐘開始到第n分鐘結束。當尼克到達單位後他就開始幹活。如果在同一時刻有多個任務需要完戍,尼克可以任選其中的乙個來做,而其...