Bzoj2442 修剪草坪

2021-08-15 15:21:03 字數 1124 閱讀 7588

乙個很顯然的暴力,設f[

i]f [i

]表示選到

i i

的最優效率

每次列舉一段不與前面連續的長度小於

k' role="presentation" style="position: relative;">k

k的區間轉移來

# include 

# define rg register

# define il inline

# define fill(a, b) memset(a, b, sizeof(a))

using

namespace

std;

typedef

long

long ll;

const

int _(1e5 + 5);

il int input()

int n, k;

ll f[_], sum[_];

int main(rg int argc, rg char* argv)

把轉移中的f[

j−1]

f [j

−1

]和su

m[j]

s um

[j

]寫在一起就可以單調佇列優化

# include 

# define rg register

# define il inline

# define fill(a, b) memset(a, b, sizeof(a))

using

namespace

std;

typedef

long

long ll;

const

int _(1e5 + 5);

il int input()

int n, k;

ll f[_], g[_], sum[_], q[_], head, tail = 1;

int main(rg int argc, rg char* argv)

printf("%lld\n", f[n]);

return

0;}

2202 修剪草坪

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

小學期 修剪草坪

有乙個n m的草坪 1 n,m 100 草坪中的草原來的高度都是100。現在使用割草機修剪草坪,來得到各種各樣的圖案。割草機只 能橫著或者豎著割草。每次割草都會先設定乙個高度,割完之後會把比設定高度高的草都割成設定的高度。比如草原來是5 2 8,設定高度為4,那麼割完之後就變成了4 2 4。現在給出...

修剪草坪 單調佇列

這道題我們可以換乙個角度思考,把題意看成 我們找到哪些奶牛不選,且滿足每兩個相鄰的不選的奶牛之間不能間隔超過k,當這些不選的奶牛的貢獻總和最低時,我們選的奶牛貢獻就最高了!這個過程用單調佇列優化一下即可,然而博主太弱了,就用了個優先佇列 include include include include...