洛谷P1725 琪露諾

2022-04-05 22:35:13 字數 794 閱讀 2627

本人第乙個單調佇列優化 $ dp $,不鼓勵鼓勵?

琪露諾這個題,$ dp $ 還是挺好想的對不,但是暴力 $ dp $ 的話會 $ tle $ ,所以我們考慮用單調佇列優化。

原題中說她只移動到區間 $ [i+l,i+r] $ 中的任意一格,所以我們單調佇列在轉移的時候 $ push $ 的應該是 $ dp[i-l] $ ,而不是 $ dp[i] $ ,對於每一段區間,我們用起點(隊頭)來更新答案就好了。

最後一步,因為區間的限制,我們只用在 $ [n-r+1,n] $ 中找乙個最大值就好了。

#include #include #include #include using namespace std;

const int maxn = 2 * 1e6;

inline int read()

while(ch >= '0' && ch <= '9')

return x * f;

}int n,l,r,a[maxn];

int f[maxn],q[maxn],head,tail;

int main()

if(l > r) swap(l , r);

head = tail = 1; q[1] = 0;

for(int i=l;i<=n;i++)

int ans = 0;

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

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

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

return 0;

}

洛谷P1725 琪露諾

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

洛谷 P1725 琪露諾

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

洛谷 P1725 琪露諾

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