AcWing 1087 修剪草坪

2022-09-09 18:09:19 字數 1038 閱讀 8493

link

雙倍經驗

三倍經驗

/*

陣列沒開夠,爆零兩行淚

longlong開成int,爆零兩行淚

多組忘清空,爆零兩行淚

dp 沒初值,爆零兩行淚

深搜沒邊界,爆零兩行淚

廣搜忘出隊,爆零兩行淚

輸入沒加 &,爆零兩行淚

模數沒看見,爆零兩行淚

-1 不輸出,爆零兩行淚

越界不特判,爆零兩行淚

線段樹開一倍,爆零兩行淚

無向變有向,爆零兩行淚

題意沒審清,爆零兩行淚

檔名起錯,爆零兩行淚

除錯忘刪除,爆零兩行淚

沒用freopen,爆零兩行淚

*/#include

using namespace std;

const

int n=

1e5+15;

typedef

long

long ll;

int n,m;

ll s[n]

;ll f[n]

;int q[n]

;ll g

(int i)

intmain()

int hh=

0,tt=0;

for(

int i=

1;i<=n;i++

) cout<

}/*f[i]表示從前i頭牛中選,且合法的方案的最大值

不選:f[i]=f[i-1];

選 i:f[i],列舉i之前,包含i的連續長度

長度: j∈[1,k]

f[i]=max(-s[i-j-1]+f[i-j-1])+s[i]

捯飭一下方程

也就是要找區間長度k,那一坨(g[i-j])的最大值

g[j]=f[j-1]-s[j]

g[0]=f[-1]-s[0]

↑0 (邊界噁心人

用單調佇列維護下標即可

s是字首和陣列

*/

AcWing1087 修剪草坪 單調佇列DP

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

2202 修剪草坪

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

小學期 修剪草坪

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