(補題)牛客小白月賽30 F 石子合併(貪心)

2021-10-11 12:55:39 字數 1138 閱讀 3327

鏈結

題目

牛牛有 n 堆石子, 每堆石子有 a[i] 個, 牛牛每次可以選擇相鄰的兩堆石子,然後拿走少的那一堆,得到的價值是兩堆石子個數之和, 直到只剩下一堆石子。

如果拿走了第 i 堆石子, 那麼第 i-1 堆和第 i+1 堆 就會相鄰。

牛牛想知道該怎麼拿,才能使得到的價值最多。

輸入

第一行乙個整數 n, 1 ≤ n ≤ 2e5

第二行 n 個整數 a[i],0 ≤ a [i] ≤ 1e9

思路補題的時候才發現這題如此的簡單,自己想多了,只是乙個貪心而已。

如果想要得到最大值,那麼最後剩下的那堆一定是這n堆裡石子數最多的那堆。

想要最大值,那麼我們只需要多次用上石子數最多的那堆就好了。

比如,1,2,3,4,5中,每次選兩個數,可以獲得n+m的價值,並去掉兩者中小的那個,如何獲得最大價值?

那我們肯定這樣取:

152

5354

5

這裡可以先停下來思考一下。

剩下的不多說,放**。

伊莉莎白!

//會超int

const

int maxn=

2e5+

100;

ll a[maxn]

;int

main()

for(ll i=

0;i) cout<

}有一點點瑕疵的一天。

牛客小白月賽 30

並查集或者最小生成樹 並查集 include include include include using namespace std typedef long long ll const int maxn 2e 5 int f maxn struct node e maxn bool cmp nod...

牛客小白月賽13 補題(ACDG)

a 通過已經給的 打表找規律,偶數輸出 1,奇數輸出1 includeusing namespace std int main void huaj ll a,ll b int main qianz 0 0 houz n 1 0 qianz 1 mp 1 houz n mp n for i 2 i n...

牛客的小白月賽24補題

沒注意負數取模 呀呀呀呀,打腦殼 保證取模後的結果為正數 x mod mod mod 思路1.挨個嘗試肯定超時 2.就是把平方項展開 a2 b2 2ab 每個平方項的出現次數n 1次 每個2ab形式的和 最後一定注意取余為正數 戳我試試看 include include include includ...