第九章 動態規劃 1292 寵物小精靈之收服

2021-10-05 11:39:42 字數 1879 閱讀 9756

1292:寵物小精靈之收服

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 3074 通過數: 1884

【題目描述】

寵物小精靈是一部講述小智和他的搭檔皮卡丘一起冒險的故事。

一天,小智和皮卡丘來到了小精靈狩獵場,裡面有很多珍貴的野生寵物小精靈。小智也想收服其中的一些小精靈。然而,野生的小精靈並不那麼容易被收服。對於每乙個野生小精靈而言,小智可能需要使用很多個精靈球才能收服它,而在收服過程中,野生小精靈也會對皮卡丘造成一定的傷害(從而減少皮卡丘的體力)。當皮卡丘的體力小於等於0時,小智就必須結束狩獵(因為他需要給皮卡丘療傷),而使得皮卡丘體力小於等於0的野生小精靈也不會被小智收服。當小智的精靈球用完時,狩獵也宣告結束。

我們假設小智遇到野生小精靈時有兩個選擇:收服它,或者離開它。如果小智選擇了收服,那麼一定會扔出能夠收服該小精靈的精靈球,而皮卡丘也一定會受到相應的傷害;如果選擇離開它,那麼小智不會損失精靈球,皮卡丘也不會損失體力。

小智的目標有兩個:主要目標是收服盡可能多的野生小精靈;如果可以收服的小精靈數量一樣,小智希望皮卡丘受到的傷害越小(剩餘體力越大),因為他們還要繼續冒險。

現在已知小智的精靈球數量和皮卡丘的初始體力,已知每乙個小精靈需要的用於收服的精靈球數目和它在被收服過程中會對皮卡丘造成的傷害數目。請問,小智該如何選擇收服哪些小精靈以達到他的目標呢?

【輸入】

輸入資料的第一行包含三個整數:n(0之後的k行,每一行代表乙個野生小精靈,包括兩個整數:收服該小精靈需要的精靈球的數量,以及收服過程中對皮卡丘造成的傷害。

【輸出】

輸出為一行,包含兩個整數:c,r,分別表示最多收服c個小精靈,以及收服c個小精靈時皮卡丘的剩餘體力值最多為r。

【輸入樣例】

10 100 5

7 10

2 40

2 50

1 20

4 20

【輸出樣例】

3 30

【提示】

樣例輸入2:

10 100 5

8 110

12 10

20 10

5 200

1 110

樣例輸出2:

0 100

對於樣例輸入1:小智選擇:(7,10) (2,40) (1,20) 這樣小智一共收服了3個小精靈,皮卡丘受到了70點傷害,剩餘100-70=30點體力。所以輸出3 30。

對於樣例輸入2:小智乙個小精靈都沒法收服,皮卡丘也不會收到任何傷害,所以輸出0 100。

思路:陣列需開大點,避免爆掉。這個是典型的二維揹包問題,套用二維揹包的模板(即0-1揹包加上一層for迴圈),最後要求的是剩餘體力的最大值,所以最後的for迴圈是為了找到和收付精靈數量一致的情況下,消耗體力最小值,用m - ans即為所求剩餘最大值。

#include

#include

#include

#include

#define n 5000

using

namespace std;

int f[n]

[n];

int n,m,k;

int a[n]

,b[n]

,c[n]

;int

main()

}int ans;

for(ans =

0; ans <= m; ans++)if

(f[n]

[ans]

== f[n]

[m])

break

;printf

("%d %d\n"

,f[n]

[m],m - ans)

;//f[n][m]收復精靈最大數,m-ans 剩餘體力

return0;

}

第九章 動態規劃 1305 Maximum sum

輸入樣例 110 1 1 2 2 3 3 4 4 5 5 輸出樣例 13 提示 就是求最大子段和問題,樣列取2,2,3,3,4和5,baidu搜poj 2479 maximum sum,可獲得大量經典最大子段和問題的題目解析,本題o n2 演算法超時,必須用o n 演算法。思路 從左到右分別求出它們...

第九章 動態規劃 1300 雞蛋的硬度

1300 雞蛋的硬度 時間限制 1000 ms 記憶體限制 65536 kb 題目描述 最近xx公司舉辦了乙個奇怪的比賽 雞蛋硬度之王爭霸賽。參賽者是來自世界各地的母雞,比賽的內容是看誰下的蛋最硬,更奇怪的是xx公司並不使用什麼精密儀器來測量蛋的硬度,他們採用了一種最老土的辦法 從高度扔雞蛋 來測試...

第九章 動態規劃 1301 大盜阿福

1301 大盜阿福 時間限制 1000 ms 記憶體限制 65536 kb 提交數 3388 通過數 1400 題目描述 阿福是一名經驗豐富的大盜。趁著月黑風高,阿福打算今晚洗劫一條街上的店鋪。這條街上一共有 n 家店鋪,每家店中都有一些現金。阿福事先調查得知,只有當他同時洗劫了兩家相鄰的店鋪時,街...