修剪草坪 單調佇列

2022-04-28 19:51:09 字數 626 閱讀 3203

這道題我們可以換乙個角度思考,把題意看成:

我們找到哪些奶牛不選,且滿足每兩個相鄰的不選的奶牛之間不能間隔超過k,當這些不選的奶牛的貢獻總和最低時,我們選的奶牛貢獻就最高了!

這個過程用單調佇列優化一下即可,然而博主太弱了,就用了個優先佇列:

#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long

#define db double

#define inf 0x7fffffff

#define rg register int

#define mp make_pair

using namespace std;

ll tot;

int n,m,a;

priority_queue> p;

inline int qr()

int main()while(p.top().secondtot+=p.top().first;

printf("%lld\n",tot);

return 0;

}

DP 單調佇列優化 修剪草坪

題目描述 在一年前贏得了小鎮的最佳草坪比賽後,約翰變得懶惰了,再也沒有修剪過草坪。現在,新一輪的比賽又開始了,約翰希望能夠再次奪冠。然而,約翰家的草坪非常髒亂,因此,約翰需要讓他的奶牛來完成這項工作。約翰家有n頭奶牛,排成一直線,編號為1到n。每只奶牛的能力是不同的,第i頭奶牛的能力為ei。靠在一起...

loj 10177 修剪草坪 單調佇列 dp

dp i max j i k 1,i 1 列舉上一次不選的位置 那麼思路就很明確了,對於dp j sum j 1 用乙個位置遞 增,值遞減的單調佇列維護。方法二 dp i 表示不選第i個數,選出所有數的最大值。那麼sum n min dp j n j n k 就是答案。dp i min dp j n...

AcWing1087 修剪草坪 單調佇列DP

題目傳送門 在一年前贏得了小鎮的最佳草坪比賽後,fj 變得很懶,再也沒有修剪過草坪。現在,新一輪的最佳草坪比賽又開始了,fj 希望能夠再次奪冠。然而,fj 的草坪非常髒亂,因此,fj 只能夠讓他的奶牛來完成這項工作。fj 有 n 只排成一排的奶牛,編號為 1 到 n。每只奶牛的效率是不同的,奶牛 i...