做順序dp做慣了,死活沒想到這是個倒序dp。
f[i]表示時刻i的最大空閒時。有以下兩種可能。
1.時刻i沒有任務。此時f[i]=f[i+1]+1;
2.時刻i有許多任務。此時f[i]=max(f[i+持續時間s)。
改進了一下題解。不用排序,直接鏈式前向星建圖!哈哈哈!
**
#include#include#include
#include
using
namespace
std;
inline
long
long
read()
while
(isdigit(ch))
return num*f;
}struct
edgeedge[
1000000
];int head[10010
],num;
inline
void add(int
from,int
to);
head[
from]=num;
}int f[100000
];int
main()
for(int i=n;i;--i)
printf("%d
",f[1
]);
return0;
}
LuoGu P1280 尼克的任務 線性動規
尼克每天上班之前都連線上英特網,接收他的上司發來的郵件,這些郵件包含了尼克主管的部門當天要完成的全部任務,每個任務由乙個開始時刻與乙個持續時間構成。尼克的乙個工作日為n分鐘,從第一分鐘開始到第n分鐘結束。當尼克到達單位後他就開始幹活。如果在同一時刻有多個任務需要完成,尼克可以任選其中的乙個來做,而其...
P1280 尼克的任務
題目描述 尼克每天上班之前都連線上英特網,接收他的上司發來的郵件,這些郵件包含了尼克主管的部門當天要完成的全部任務,每個任務由乙個開始時刻與乙個持續時間構成。尼克的乙個工作日為n分鐘,從第一分鐘開始到第n分鐘結束。當尼克到達單位後他就開始幹活。如果在同一時刻有多個任務需要完戍,尼克可以任選其中的乙個...
LG 1280 尼克的任務
題目描述 尼克每天上班之前都連線上英特網,接收他的上司發來的郵件,這些郵件包含了尼克主管的部門當天要完成的全部任務,每個任務由乙個開始時刻與乙個持續時間構成。尼克的乙個工作日為n分鐘,從第一分鐘開始到第n分鐘結束。當尼克到達單位後他就開始幹活。如果在同一時刻有多個任務需要完成,尼克可以任選其中的乙個...