【問題描述】
早就和lyk約好了去打cs,一直沒找著時間,終於今天我家沒人,他家也沒人,總算可以出去了。但是偏偏天公不作美,某某人非要留那麼多題要做。沒辦法只能盡快做完然後抓緊時間吧……
為了盡量節省時間,我倆決定分開做所有題吧(嘿嘿,稍微耍一下滑~~)。但是有的題我比較擅長,而有的題lyk要比我做的快。所以為了盡快做完所有的題,我們要好好的分配一下。現在給出你要做題 的數目和我倆分別做每個題所需要的時間。希望你幫忙計算一下,我們最少需要多長時間才能做完所有的題去打cs啊!!!
【輸入格式】cs.in
第一行乙個正整數n,表示有n個題要做。
接下來有n行,每行兩個正整數ai,bi。 分別表示我和lyk做每個題所用的時間。
【輸出格式】cs.out
乙個數,最少需要多長時間才能去打cs。
【輸入樣例】
35 10
6 11
7 12
【輸出樣例】
12【輸入輸出樣例解釋】
我完成題目1和題目2,時間為11。lyk完成題目3,時間為12。
或者 我完成題目1和題目3,時間為12。lyk完成題目2,時間為11。
【資料規模】
30%的資料滿足:1 <= n <= 20
100%的資料滿足:1 <= n <= 200 , 1 <= ai,bi <=200
定義狀態,f[i][j]代表做前i個題,第乙個人用了j分鐘時,第二個人所用的最少時間是多少。
然後dp求解。
注釋**:
#include#include#include
using
namespace
std;
int f[201][40001],x[205],y[205
];int
main()
for(int i=0;i<=m;i++)
mi=min(mi,max(i,f[n][i]));
printf("%d
",mi);
return0;
}
my
#include#include#include
using
namespace
std;
int a[201],b[201],f[201][40001
],n,sa;
intmain()
memset(f,
13,sizeof
(f));
memset(f[
0],0,sizeof(f[0
]));
for(int i=0;ii)
for(int j=sa-a[i];j>=0;--j)
int mn=0x3f3f3f
;
for(int i=0;i<=sa;++i)
printf("%d
",mn);
return0;
}
一起去打CS
題目描述 早就和lyk約好了去打cs,一直沒找著時間,終於今天我家沒人,他家也沒人,總算可以出去了。但是偏偏天公不作美,某某人非要留那麼多題要做。沒辦法只能盡快做完然後抓緊時間吧 為了盡量節省時間,我倆決定分開做所有題吧 嘿嘿,稍微耍一下滑 但是有的題我比較擅長,而有的題lyk要比我做的快。所以為了...
codevs 一起去打cs
題目描述 description 早就和lyk約好了去打cs,一直沒找著時間,終於今天我家沒人,他家也沒人,總算可以出去了。但是偏偏天公不作美,某某人非要留那麼多題要做。沒辦法只能盡快做完然後抓緊時間吧 為了盡量節省時間,我倆決定分開做所有題吧 嘿嘿,稍微耍一下滑 但是有的題我比較擅長,而有的題ly...
一起去打CS(codevs 5059)
題目描述 description 早就和lyk約好了去打cs,一直沒找著時間,終於今天我家沒人,他家也沒人,總算可以出去了。但是偏偏天公不作美,某某人非要留那麼多題要做。沒辦法只能盡快做完然後抓緊時間吧 為了盡量節省時間,我倆決定分開做所有題吧 嘿嘿,稍微耍一下滑 但是有的題我比較擅長,而有的題ly...