總有一些動態轉移方程讓人很難想,現在先讓我們看幾道題吧。
joi君有n個裝在手機上的掛飾,編號為1...n。 joi君可以將其中的一些裝在手機上。
joi君的掛飾有一些與眾不同——其中的一些掛飾附有可以掛其他掛件的掛鉤。每個掛件要麼直接掛在手機上,要麼掛在其他掛件的掛鉤上。直接掛在手機上的掛件最多有1個。
此外,每個掛件有乙個安裝時會獲得的喜悅值,用乙個整數來表示。如果joi君很討厭某個掛飾,那麼這個掛飾的喜悅值就是乙個負數。
joi君想要最大化所有掛飾的喜悅值之和。注意不必要將所有的掛鉤都掛上掛飾,而且乙個都不掛也是可以的。
第一行乙個整數n,代表掛飾的個數。
接下來n行,第i行(1<=i<=n)有兩個空格分隔的整數ai和bi,表示掛飾i有ai個掛鉤,安裝後會獲得bi的喜悅值。
輸出一行乙個整數,表示手機上連線的掛飾總和的最大值
輸入 #1複製
50 42 -2
1 -1
0 10 3
輸出 #1複製
5
1 ≤ n ≤ 2000
0 ≤ ai ≤ n (1≤i≤n)
−10^6 ≤ bi ≤ 10^6 (1≤i≤n)
f[ i ] [ j ]表示前i件物品在有j個掛鉤的情況下的最大價值
因為j-w[i]+1可能是個負數,沒有意義,這時候就要考慮這物品直接掛在手機上即j=1,也就需要我們把j-w[i]和0取最大值保證有意義
所以正解方程為f[i][j]=max(f[i-1][j],f[i-1][max(j-w[i].a,0)+1]+w[i].b);//這裡的a是鉤子,b是價值
注意:這裡的 j 是指剩餘的掛鉤數量。
1 #include 2 #include 3 #include 4 #include 56#define maxn 3100
7#define maxx -1000000000
8using
namespace
std;
9int
f[maxn][maxn];
10struct
nodea[maxn];
13bool
cmp(node a,node b)
16int
main()
22 sort(a+1,a+1+n,cmp);
23for(int i = 0; i<= n; i++)
27 f[0][1]=0;28
for(int i = 1 ;i <= n; i++)32}
33int maxm=maxx;
34for(int i = 0 ; i<= n; i++)
37 cout<38return0;
39 }
你駕駛著一台帶有鑽頭(初始能力值w)的飛船,按既定路線依次飛過n個星球。
星球籠統的分為2類:資源型和維修型。(p為鑽頭當前能力值)
1.資源型:含礦物質量a[i],若選擇開採,則得到a[i]*p的金錢,之後鑽頭損耗k%,即p=p*(1-0.01k)
2.維修型:維護費用b[i],若選擇維修,則支付b[i]*p的金錢,之後鑽頭修復c%,即p=p*(1+0.01c)
注:維修後鑽頭的能力值可以超過初始值(你可以認為是翻修+公升級)
金錢可以透支。
請作為艦長的你仔細抉擇以最大化收入。
第一行4個整數n,k,c,w。
以下n行,每行2個整數type,x。
type為1則代表其為資源型星球,x為其礦物質含量a[i];
type為2則代表其為維修型星球,x為其維護費用b[i];
乙個實數(保留2位小數),表示最大的收入。
輸入 #1複製
5 50 50 101 10
1 20
2 10
2 20
1 30
輸出 #1複製
375.00
【資料範圍】
對於30%的資料 n<=100
另有20%的資料 n<=1000;k=100
對於100%的資料 n<=100000; 0<=k,c,w,a[i],b[i]<=100;保證答案不超過10^9
1 #include 2 #include 3using
namespace
std;
4int n, f[100005], a[100005];5
double c, k, w, dp[100005];6
intmain()
14 printf("
%.2lf
", dp[1]*w);
15return0;
16 }
freemind的缺憾 難以讓思維收斂
可是,這也是freemind的缺憾所在。往往我在思考乙個問題時,越思考越覺得問題多,我的創意也越來越多 最後結果就是,我幾乎沒有乙個問題 完成 我的思考。很多freemind腦圖,至今還處於半完成狀態。我的思維本身就過於發散,不善於收斂 freemind加強了我思維的發散性,但是沒有乙個好的讓思維收...
讓人費解的動態規劃 最低票價
今天遇到的這道題,我知道要用動態規劃,可就是想不出狀態轉移方程。看了題解,才明白,它倒序求得的。題目鏈結如下 leetcode,最低票價 在乙個火車旅行很受歡迎的國度,你提前一年計劃了一些火車旅行。在接下來的一年裡,你要旅行的日子將以乙個名為 days 的陣列給出。每一項是乙個從 1 到 365 的...
媽媽自私的愛讓孩子難以長大
孩子已經30歲,因為眼睛近視什麼事情也不會做,生活瑣事基本是由家人給予照顧,就是找個物件同樣也是親戚在給張羅,爸爸很早就離開,在媽媽辛苦陪伴下把子女撫養 因為對孩子的愛,孩子從小體弱多病,媽媽也總是讓姐姐多一些照顧,不要難為孩子,即使在大學畢業回家沒有找到工作,媽媽和接近也是一如既往呵護疼愛。在諮詢...