恕我懶
分析:本蒟蒻只想到了辣雞做法:f(i, j)表示前j個任務分了i組,最少費用,f(i, j) = min
發現這是o(n^3)的,水不過去...
於是腦洞大開想寫乙個二維的斜率優化...
不知道為什麼一直wa了乙個點...
於是去尋找正解,發現只需要開1維陣列就夠了,驚呆我了...
用f(i)表示從第i個任務開始做的最小費用。
然後就好轉移了:f(i) = min
順便這題買1送1,poj1180
#include #include #include using namespace std;
const int n = 10005;
int n,s,x,y,st[n],sf[n],f[n];
int main()
這題不由得讓我想到了7.2的考試題t1,大概是要把n個數分成盡量多的連續的組,使每個組的所有元素和單調增。
這題考試時我也只想出了二維的做法,tle,正解是一維的。
然後是這題的核心**,大概是用了一種貪心的思想來優化。
for(i=1;i<=n;i++) {
scanf("%d",&x);
b[i]=b[i-1]+x;
for(j=i-1;j&&b[i]-b[j]
TYVJ 1098 任務安排
n個任務排成乙個序列在一台機器上等待完成 順序不得改變 這n個任務被分成若干批,每批包含相鄰的若干任務。從時刻0開始,這些任務被分批加工,第i個任務單獨完成所需的時間是ti。在每批任務開始前,機器需要啟動時間s,而完成這批任務所需的時間是各個任務需要時間的總和 同一批任務將在同一時刻完成 每個任務的...
Tyvj1098任務安排
這篇講解部分已經整合進入 留在這裡。n個任務排成乙個序列在一台機器上等待完成 順序不得改變 這n個任務被分成若干批,每批包含相鄰的若干任務。從時刻0開始,這些任務被分批加工,第i個任務單獨完成所需的時間是ti。在每批任務開始前,機器需要啟動時間s,而完成這批任務所需的時間是各個任務需要時間的總和 同...
Tyoj1098 任務安排
n個任務排成乙個序列在一台機器上等待完成 順序不得改變 這n個任務被分成若干批,每批包含相鄰的若干任務。從時刻0開始,這些任務被分批加工,第i個任務單獨完成所需的時間是ti。在每批任務開始前,機器需要啟動時間s,而完成這批任務所需的時間是各個任務需要時間的總和 同一批任務將在同一時刻完成 每個任務的...