任務安排1

2021-10-07 19:37:58 字數 1265 閱讀 1335

有 n 個任務排成乙個序列在一台機器上等待執行,它們的順序不得改變。

機器會把這 n 個任務分成若干批,每一批包含連續的若干個任務。

從時刻0開始,任務被分批加工,執行第 i 個任務所需的時間是 titi。

另外,在每批任務開始前,機器需要 s 的啟動時間,故執行一批任務所需的時間是啟動時間 s 加上每個任務所需時間之和。

乙個任務執行後,將在機器中稍作等待,直至該批任務全部執行完畢。

也就是說,同一批任務將在同一時刻完成。

每個任務的費用是它的完成時刻乘以乙個費用係數 cici。

請為機器規劃乙個分組方案,使得總費用最小。

輸入格式

第一行包含整數 n。

第二行包含整數 s。

接下來n行每行有一對整數,分別為 titi 和 cici,表示第 i 個任務單獨完成所需的時間 titi 及其費用係數 cici。

輸出格式

輸出乙個整數,表示最小總費用。

資料範圍

1≤n≤50001≤n≤5000,

0≤s≤500≤s≤50,

1≤ti,ci≤1001≤ti,ci≤100

輸入樣例:51

1 33 2

4 32 3

1 4輸出樣例:

153

#include

#include

#include

#include

using

namespace std;

const

int n =

50010

;int n, s;

int st[n]

, sc[n]

;int f[n]

;int

main()

memset

(f,0x3f

,sizeof f)

; f[0]

=0;for

(int i =

1; i <= n; i ++

)for

(int j =

0; j < i; j ++

) f[i]

=min

(f[i]

, f[j]

+(sc[i]

- sc[j]

)* st[i]

+ s *

(sc[n]

- sc[j]))

; cout << f[n]

<< endl;

return0;

}

C 題解 任務安排1

有 n nn 個任務排成乙個序列在一台機器上等待執行,它們的順序不得改變。機器會把這n nn 個任務分成若干批,每一批包含連續的若干個任務。從時刻0 00開始,任務被分批加工,執行第 i ii 個任務所需的時間是 t it i ti 另外,在每批任務開始前,機器需要 s 的啟動時間,故執行一批任務所...

1606 例 1 任務安排 1

1606 例 1 任務安排 1 時間限制 1000 ms 記憶體限制 524288 kb 提交數 203 通過數 149 題目描述 有 n 個任務排成乙個序列在一台機器上等待執行,它們的順序不得改變。機器會把這 n 個任務分成若干批,每一批包含連續的若干個任務。從時刻 0 開始,任務被分批加工,執行...

任務安排 jobs

題目 任務安排 jobs.c cpp pas in out 時限 每個測試點2 秒 問題描述 小y 最近遇到了乙個棘手的問題。她有兩項任務需要完成,其中第一項任務是重複操作1 op1 s1 次,第二項任務是重複操作2 op2 s2 次。為了完成這些任務,小 y 僱傭了n 名工人。其中,第i 個工人完...