D 任務分配 壓縮維度的線性dp

2021-10-18 19:42:08 字數 1140 閱讀 2614

description

現有n個任務,要交給a和b完成。每個任務給a或給b完成,所需的時間分別為ai和bi。問他們完成所有的任務至少要多少時間。

input

第一行乙個正整數n,表示有n個任務。

接下來有n行,每行兩個正整數ai,bi。

output

乙個數,他們完成所有的任務至少要的時間。

samples

input copy

3

5 10

6 11

7 12

output

12
hint

【輸入輸出樣例解釋】

a完成任務1和任務2,時間為11。b完成任務3,時間為12。

或者 a完成任務1和任務3,時間為12。b完成任務2,時間為11。

【限制】

30%的資料滿足:1≤n≤201≤n≤20

100%的資料滿足:1≤n≤2001≤n≤200 , 1≤ai,bi≤2001≤ai,bi≤200 

source

思路:需要積累經驗的dp呀(哎

設f[i][j]表示前i個任務,a機器花了j時間,b機器花的時間的最小值;

即f[i][j]表示的是b機器花了多少時間;

則f[i][j] = min(f[i-1][j]+b[i],f[i-1][j-a[i]]);

後者的轉移類似揹包,注意轉移條件。

最後動態在j和dp[n][j]裡面取個最大的最小

#include#include#include#include#include#include#include#include#include#define debug(a) cout<<#a<<"="<>n;

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

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

for(ll j=0;j<=40000;j++)

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

else dp[i][j]=min(dp[i-1][j]+b[i],dp[i][j]);

}} ll ans=0x3f3f3f3f;

for(ll j=0;j<=40000;j++)

cout

}

分配策略 基於AUTOSAR的任務分配策略

隨著汽車電子應用程式對處理器效能需求的不斷提高,現代汽車電子系統中的電子控制單元 ecu 已公升級為多核結構.多核結構處理器 在系統級設計中,汽車電子應用程式由若干構件 swc 組成.每個構件實現了應用程式的某一特定功能.若干構件通過相互協作共同實現應用程式的具體行為.然而,在ecu設計中,作業系統...

noip模擬賽5 任務分配 降維dp

描述 現有n個任務,要交給a和b完成。每個任務給a或給b完成,所需的時間分別為ai和bi。問他們完成所有的任務至少要多少時間。輸入第一行乙個正整數n,表示有n個任務。接下來有n行,每行兩個正整數ai,bi。輸出乙個數,他們完成所有的任務至少要的時間。輸入樣例 1 3 5 10 6 11 7 12 輸...

線性DP 尼克的任務

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