切蛋糕(洛谷P1714)
生活随笔
收集整理的這篇文章主要介紹了
切蛋糕(洛谷P1714)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
切蛋糕
題目描述
今天是小Z的生日,同學們為他帶來了一塊蛋糕。這塊蛋糕是一個長方體,被用不同色彩分成了N個相同的小塊,每小塊都有對應的幸運值。
小Z作為壽星,自然希望吃到的第一塊蛋糕的幸運值總和最大,但小Z最多又只能吃M小塊(M≤N)的蛋糕。
吃東西自然就不想思考了,于是小Z把這個任務扔給了學OI的你,請你幫他從這N小塊中找出連續的k塊蛋糕(k≤M),使得其上的幸運值最大。
輸入格式
輸入文件cake.in的第一行是兩個整數N,M。分別代表共有N小塊蛋糕,小Z最多只能吃M小塊。
第二行用空格隔開的N個整數,第i個整數Pi代表第i小塊蛋糕的幸運值。
輸出格式
輸出文件cake.out只有一行,一個整數,為小Z能夠得到的最大幸運值。
輸入 #1
5 2
1 2 3 4 5
輸出 #1
9
輸入 #2
6 3
1 -2 3 -4 5 -6
輸出 #2
5
一道單調隊列的題目,但是很難想到;我們首先要想到前綴和,當只能吃M塊時,這就是一道前綴和的裸題,但是M是不固定的,所以我們要想到對于 i 結尾的一個子區間,最大的區間和為s[i]=max(s[i]-s[j]),這時只要求出s[j]的最小值,j屬于【i-M,i-1】;那這里就能看出是一道單調隊列的題了,維護一個單調遞增的隊列;
代碼:
總結
以上是生活随笔為你收集整理的切蛋糕(洛谷P1714)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ant Design Pro 菜单自定义
- 下一篇: Tarena代码-一些代码碎片