time limit: 1 secs, memory limit: 32 mb
小w發明了乙個遊戲,他在黑板上寫出了一行數字a1,a2,….an,然後給你m個回合的機會,每回合你可以從中選擇乙個數擦去它,接著剩下來的每個數字ai都要遞減乙個值bi。如此重複m個回合,所有你擦去的數字之和就是你所得到的分數。
小w和他的好朋友小y玩了這個遊戲,可是他發現,對於每個給出的an和bn序列,小y的得分總是比他高,所以他就很不服氣。於是他想讓你幫他算算,對於每個an和bn序列,可以得到的最大得分是多少。這樣他就知道有沒有可能超過小y的得分。
第一行,乙個整數n(1<=n<=200),表示數字的個數。
第二行,乙個整數m(1<=m<=n),表示回合數。
接下來一行有n個不超過10000的正整數,a1,a2…an,表示原始數字
最後一行有n個不超過500的正整數,b1,b2….bn,表示每回合每個數字遞減的值
乙個整數,表示最大可能的得分
3 310 20 304 5 6
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
struct thing ;
thing t[205];
int dp[205][205];
bool cmp(const thing & t1, const thing & t2)
int main()
} cout
<< dp[n][m] << endl;
cin >> n;
return
0;
}
Sicily 1221 數字遊戲
time limit 1 secs,memory limit 32 mb 小w發明了乙個遊戲,他在黑板上寫出了一行數字a1,a2,an,然後給你m個回合的機會,每回合你可以從中選擇乙個數擦去它,接著剩下來的每個數字ai都要遞減乙個值bi。如此重複m個回合,所有你擦去的數字之和就是你所得到的分數。小w...
Sicily 1221 數字遊戲
time limit 1 secs,memory limit 32 mb 小w發明了乙個遊戲,他在黑板上寫出了一行數字a1,a2,an,然後給你m個回合的機會,每回合你可以從中選擇乙個數擦去它,接著剩下來的每個數字ai都要遞減乙個值bi。如此重複m個回合,所有你擦去的數字之和就是你所得到的分數。小w...
動態規劃 sicily1221
解題思路 題目有個地方,我理解錯了,導致wa很多次,問題是當你擦除a i 時,你要將它對應的b i 去減剩餘的序列,之前一直以為第i輪就減去b i orz。簡單的動態,dp i 表示去到第i輪時的最大擦出和。按照我們直觀的思路,肯定是最大消費的 也就是b i 比較大的 應該先拿掉,因此我們先按照co...