jz友鏈
洛谷上也有相同的題目
難度 :普及/提高-
描述:jzoj普及組模擬比賽時的一道題目
fj經常給產奶量高的奶牛發特殊津貼,於是很快奶牛們擁有了大筆不知該怎麼花的錢。為此,fj購置了n(1
<=n
<
=2000
)n(1<=n<=2000)
n(1<=n
<=2
000)
份美味的零食來賣給奶牛們。每天fj售出乙份零食。當然fj希望這些零食全部售出後能得到最大的收益。
這些零食有以下這些有趣的特性:
第1
11行: 乙個整數n
nn,表示零食的總數
第2..n+
12..n+1
2..n+1
行: 第i+1
i+1i+
1行給出了從盒子頂端往下的第i
ii份零食的初始價值v(i
)v(i)
v(i)
第1
11行: 輸出乙個整數,即fj在賣完所有零食後的最大可能收益
樣例輸入
513
152
樣例輸出43
提示
【樣例說明】
fj一共進了5
55份零食。第1
11天fj可以選擇**第1
11份初始價值為1
11的零食,或是第5
55份初始價值為2
22的零食。fj按照以下的順序**零食:1,5
,2,3
,4
1,5,2,3,4
1,5,2,
3,4,這樣他的總收入就是1∗1
+2∗2
+3∗3
+4∗1
+5∗5
=43
1*1+2*2+3*3+4*1+5*5=43
1∗1+2∗
2+3∗
3+4∗
1+5∗
5=43
。分析:
看到這種求最優子問題的題目,一般都是使用動態規劃來解決的,尋找它的每乙個狀態,大事化小,小事化了(emmm大概就是這個意思吧),有用到揹包問題的思想,可以看看書上揹包問題是這麼講的,再到這題來分析。
此處是區間dp,分兩層迴圈進行列舉,第一層迴圈列舉區間長度,第二層迴圈列舉左端點。
這道題非常像是方格取數(小聲:簡直就是原型!)
code:
#include
//van♂能頭
using
namespace std;
int n,ans,v[
2005
],dp[
2005][
2005];
//根據題目要求,陣列盡量開大
intmain()
for(
register
int i=
2;i<=n;
++i)
} cout<[n]/最終輸出從開頭到末尾的最大值
return0;
}
嗯這篇blog就到這裡了,樓下**字,歡迎掃一掃檢視↓。。。 NOIP普及組模擬 回文陣列
時間限制 1 sec 記憶體限制 128 mb 給定有n個整數的陣列a,下標從1到n。如果對每乙個下標i均滿足a i a n i 1 則稱陣列是回文的。例如,陣列a 就是回文陣列。如果陣列a不是回文的,可以採用合併兩個相鄰元素的方法去得到回文陣列。注意,每操作一次,陣列的元素數量減少1。例如,陣列a...
2016NOIp普及組 海港 模擬
洛谷p2058 小k是乙個海港的海關工作人員,每天都有許多船隻到達海港,船上通常有很多來自不同國家的乘客。小k對這些到達海港的船隻非常感興趣,他按照時間記錄下了到達海港的每一艘船隻情況 對於第i艘到達的船,他記錄了這艘船到達的時間ti 單位 秒 船上的乘 客數星ki,以及每名乘客的國籍 x i,1 ...
牛客模擬賽1 普及組
題號題目 t1牛牛的密碼 t2牛牛的跳跳棋 t3牛牛的最大興趣組 t4牛牛的滑動視窗 得分120 120 直接照題意模擬即可。include include include include using namespace std char xy 100010 dy 100010 sz 100010 ...