洛谷 P1725 琪露諾 單調棧優化dp

2021-09-23 13:33:19 字數 543 閱讀 2059

題意中文的不說了;

做法:首先可以想到乙個dp方程 dp[i]表示當前位置i的最大值,dp[i]=max(dp[j])+a[i] j表示可以跳到i的位置,但不過暴力肯定t了

但不過仔細一想,能到i的位置的區間長度是固定的,所以直接用單調棧維護,在i前面的(i-l,i-r)的區間就可以了,注意,長度不足的情況

#includeusing namespace std;

typedef long long ll;

typedef unsigned long long ull;

const int n=2e5+10;

int n,l,r,a[n],dp[n];

int que[n],head,tail,id[n];

int main()

int ans=0;

for(int i=n-r+1;i<=n;i++)

ans=max(dp[i],ans);

printf("%d\n",ans);

return 0;

}

洛谷P1725 琪露諾

在幻想鄉,琪露諾是以笨蛋聞名的冰之妖精。某一天,琪露諾又在玩速凍青蛙,就是用冰把青蛙瞬間凍起來。但是這只青蛙比以往的要聰明許多,在琪露諾來之前就已經跑到了河的對岸。於是琪露諾決定到河岸去追青蛙。小河可以看作一列格仔依次編號為0到n,琪露諾只能從編號小的格仔移動到編號大的格仔。而且琪露諾按照一種特殊的...

洛谷 P1725 琪露諾

題目鏈結 在幻想鄉,琪露諾是以笨蛋聞名的冰之妖精。某一天,琪露諾又在玩速凍青蛙,就是用冰把青蛙瞬間凍起來。但是這只青蛙比以往的要聰明許多,在琪露諾來之前就已經跑到了河的對岸。於是琪露諾決定到河岸去追青蛙。小河可以看作一列格仔依次編號為0到n,琪露諾只能從編號小的格仔移動到編號大的格仔。而且琪露諾按照...

洛谷 P1725 琪露諾

在幻想鄉,琪露諾是以笨蛋聞名的冰之妖精。某一天,琪露諾又在玩速凍青蛙,就是用冰把青蛙瞬間凍起來。但是這只青蛙比以往的要聰明許多,在琪露諾來之前就已經跑到了河的對岸。於是琪露諾決定到河岸去追青蛙。小河可以看作一列格仔依次編號為0到n,琪露諾只能從編號小的格仔移動到編號大的格仔。而且琪露諾按照一種特殊的...