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

2022-05-01 17:18:07 字數 1176 閱讀 3952

描述

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

輸入第一行乙個正整數n,表示有n個任務。接下來有n行,每行兩個正整數ai,bi。

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

輸入樣例 1 

3

5 10

6 11

7 12

輸出樣例 1

12

提示【輸入輸出樣例解釋】

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

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

一看題目感覺很簡單

最普通的寫法就是三維的  然後用揹包寫法     但是會 超時 

可以進行降維處理!!

dp[i][j]表示  第i項任務   a的時間是j  b的時間是dp!!!  太強大了qaq

#includeusing

namespace

std;

//input

#define rep(i,a,b) for(int i=(a);i<=(b);i++)

#define ri(n) scanf("%d",&(n))

#define rii(n,m) scanf("%d%d",&n,&m);

#define riii(n,m,k) scanf("%d%d%d",&n,&m,&k)

#define rs(s) scanf("%s",s);

#define ll long long

#define rep(i,n) for(int i=0;i<(n);i++)

#define clr(a,v) memset(a,v,sizeof a)

/////////////////////////////////

/#define n 10005

inta[n];

intb[n];

intdp[n][n];

intmain()

}int minn=0x3f3f3f3f

; rep(i,

0,sum)

minn=min(minn,max(i,dp[n][i]));//

注意求極值的寫法

cout<}

1301 任務分配

2003年浙江省隊選拔賽 時間限制 1 s 空間限制 128000 kb 題目等級 大師 master 題解檢視執行結果 有n位工作人員,同時有n項任務,每人必須承擔一項任務,若給出某人不能從事的某些任務,問要安排好工作,共有多少種方案?輸入描述 input description 輸入檔案第1行為...

CODEVS 1301 任務分配

描述 有n位工作人員,同時有n項任務,每人必須承擔一項任務,若給出某人不能從事的某些任務,問要安排好工作,共有多少種方案?分析 容斥原理的應用.先看看樣例 四個人 a,b,c,d a 不能選擇 2 b 不能選擇 2 3 c 不能選擇 3 4 d 不能選擇 4 總數是1 4全排列的個數 4 24 再考...

t057 任務分配

time limit 1 second memory limit 128 mb 問題描述 現有n個任務,要交給a和b完成。每個任務給a或給b完成,所需的時間分別為ai和bi。問他們完成所有的任務至少要多少時間。輸入格式 第一行乙個正整數n,表示有n個任務。接下來有n行,每行兩個正整數ai,bi。輸出...