NOIP普及組模擬 JZOJ 牛的零食

2021-09-26 02:19:16 字數 1605 閱讀 5081

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 ...