JZOJ 數字遊戲 DP

2021-09-25 05:41:12 字數 821 閱讀 4303

小w發明了乙個遊戲,他在黑板上寫出了一行數字a1,a2,a3,……,an,然後給你m個回合的機會,每回合你可以從中選擇乙個數字擦去它,接著剩下來的每個數字ai都要遞減乙個值bi,即a1減掉b1,a2減掉b2,….。如此重複m個回合,所有你擦去的數字之和就是你所得的分數。

小w和他的好朋友小y玩了這個遊戲,可是他發現,對於每個給出的an和bn序列,小y的得分總比他高,所以他就很不服氣。於是他想讓你幫他算算,對於每個an和bn序列,可以得到的最大得分是多少。這樣他就知道有沒有可能超過小y的得分。

輸入檔案的第一行是乙個整數n(1<=n<=2000),表示數字個數;第二行乙個整數m(1<=m<=n),表示回合數,接下來一行有n個不超過10000的正整數,a1,a2,a3,……,an表示原始序列,最後一行有n個不超過500的正整數,b1,b2,b3,……,bn,表示每回合每個數字遞減的值。

輸出檔案只有乙個整數,表示最大的可能得分。33

10 20 30

4 5 6

#include

#include

#include

#include

using

namespace std;

int n,m,f[

2005][

2005];

struct axb

a[2005];

bool

aaaab

(axb p,axb q)

intmain()

printf

("%d"

,f[n]

[m])

;return0;

}

jzoj數字遊戲 貪心 DP

description 一行數字a1,a2,a3,an,有m個回合,每個回合必須從中選擇乙個數字擦去它,接著每個回合後剩下來的每個數字ai都要遞減乙個相應的值bi。如此重複m個回合,所有你擦去的數字之和就是你所得的分數。給出n,m,a數列和b數列,求所得的最多的分數。input 輸入檔案的第一行是乙...

DP 數字遊戲(jzoj 2131)

有n個數,每個數有相應的a ia i ai 和b ib i bi 當選了乙個數後結果加上a ia i ai 其他數分別減去他們自己的a ja j aj 現在讓你選m個數,結果最大是多少 3 310 20 30 4 5 6471 m n 2000 1 leqslant m leqslant n leq...

數字DP 數字遊戲

科協裡最近很流行數字遊戲。某人命名了一種不降數,這種數字必須滿足從左到右個位數字呈現小於等於的關係,如123,446.現在大家決定玩乙個遊戲,指定乙個整數閉區間 a,b 問這個區間內有多少個不降數。輸入多組測試資料。每組只包含兩個數字a和b 1 a,b 2 31 每行給出乙個測試資料的答案,即 a,...