TYVJ P1098 任務安排

2021-08-25 14:39:44 字數 798 閱讀 9048

目錄:

傳送門

很明顯的dp題,但樸素演算法的o(

n3) o(n

3)

肯定是涼掉的

所以我們要考慮加上一些優化使得時間複雜度降下

這裡我們引用一種新思路:「費用提前計算」

之所以這麼說,是因為我們可以只考慮啟動時間對後續任務產生的影響

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define xjq 1000000007

using

namespace

std;

inline ll read()

while(s>='0'&&s<='9')

return d*f;

}int min(int x,int y)

memset(f,0x3f,sizeof(f));

f[0]=0;

for(int i=1;i<=n;i++)

for(int j=0;jcout

0;}

Tyvj1098 任務安排

恕我懶 分析 本蒟蒻只想到了辣雞做法 f i,j 表示前j個任務分了i組,最少費用,f i,j min 發現這是o n 3 的,水不過去.於是腦洞大開想寫乙個二維的斜率優化.不知道為什麼一直wa了乙個點.於是去尋找正解,發現只需要開1維陣列就夠了,驚呆我了.用f i 表示從第i個任務開始做的最小費用...

TYVJ 1098 任務安排

n個任務排成乙個序列在一台機器上等待完成 順序不得改變 這n個任務被分成若干批,每批包含相鄰的若干任務。從時刻0開始,這些任務被分批加工,第i個任務單獨完成所需的時間是ti。在每批任務開始前,機器需要啟動時間s,而完成這批任務所需的時間是各個任務需要時間的總和 同一批任務將在同一時刻完成 每個任務的...

Tyoj1098 任務安排

n個任務排成乙個序列在一台機器上等待完成 順序不得改變 這n個任務被分成若干批,每批包含相鄰的若干任務。從時刻0開始,這些任務被分批加工,第i個任務單獨完成所需的時間是ti。在每批任務開始前,機器需要啟動時間s,而完成這批任務所需的時間是各個任務需要時間的總和 同一批任務將在同一時刻完成 每個任務的...