題目大意:
你在ktv唱歌,有乙個時限,但是在時限到時,若一首歌沒唱完可以繼續唱,已知有n首歌可以唱,已知他們的時長每個都不超過3分鐘
不能重複唱一首歌。還有一首678秒的歌,歌之間可以無縫銜接
思路:典型的揹包問題
求這n首歌能達到不超過t-1的時間
t-1是因為要留出1秒來開始那個巨長的歌
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9view code#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 }
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時間時所能...