uva 12563 勁歌金曲

2022-06-01 15:24:10 字數 683 閱讀 7618

題目大意:

你在ktv唱歌,有乙個時限,但是在時限到時,若一首歌沒唱完可以繼續唱,已知有n首歌可以唱,已知他們的時長每個都不超過3分鐘

不能重複唱一首歌。還有一首678秒的歌,歌之間可以無縫銜接

思路:典型的揹包問題

求這n首歌能達到不超過t-1的時間

t-1是因為要留出1秒來開始那個巨長的歌

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9

#define inf 2147483611

10#define ll long long

11#define maxn 101010

12#define mod 905229641

13using

namespace

std;

14 inline int

read()

1519

while(isdigit(ch))

20return x*f;21}

22int n,k,a[55

],t;

23int

t,dp[maxn],ans,res;

24int

main()

2537 }

view code

UVA 12563 勁歌金曲 01揹包

題目鏈結 勁歌金曲 題目型別 01揹包 題解 題意 求在給定時間內,最多能唱多少歌曲,在最多歌曲的情況下,使唱的時間最長。該題類似於01揹包問題,可用01揹包問題的解題思路來求,每個歌曲相當於物品,歌曲的長度相等於物品重量,每個歌曲的 價值 為1。由於金歌勁曲時間最長,所以最後要留至少1秒時間開始唱...

UVA 12563 揹包問題的注意問題

這道題就是揹包問題。但是我在一維陣列 滾動陣列 和二維陣列上沒理解清楚,導致出現了bug,找了好久才想出來。二維陣列做法 include include include include include include include include include include include u...

動態規劃 勁歌金曲

題意 給n首歌和乙個時間t,最後一首歌必須是勁歌金曲 這首歌的時間是678s 要求t時間內唱的歌的數目最多的前提下使唱的時間最大。01揹包問題,只不過決策時有兩個條件,歌的數目和唱的時間 設定dp i j 表示在前i首歌,剩餘j時間時所能唱的最大時間 ans i j 表示在前i首歌,剩餘j時間時所能...