洛谷 P2629 好訊息,壞訊息

2022-05-12 14:48:11 字數 560 閱讀 6210

**佇列:

題目傳送門:

對於這種環狀的序列問題,我們可以破環成鏈,兩倍延長陣列即可。

所以,以\(k\)開頭的方案就可以對應陣列裡\([k,k+n-1]\)了。

然後,我們求出陣列的字首和,以\(k\)開頭的方案不會惹怒老闆那就相當於\(max(sum_),(pos\in [k,k+n-1])\)不會小於\(sum_k\)。

我們用單調佇列動態維護區間最小值然後與\(sum_k\)比較更新答案即可。

時間複雜度:\(o(n)\)

空間複雜度:\(o(n)\)

**如下:

#include using namespace std;

const int maxn=1e6+5;

int n,head,tail,ans;

int a[maxn<<1],sum[maxn<<1],list[maxn<<1];

int read()

int main()

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

return 0;

}

好訊息,壞訊息(洛谷 P2629)

題目描述 uim在公司裡面當秘書,現在有n條訊息要告知老闆。每條訊息有乙個好壞度,這會影響老闆的心情。告知完一條訊息後,老闆的心情等於之前老闆的心情加上這條訊息的好壞度。最開始老闆的心情是0,一旦老闆心情到了0以下就會勃然大怒,炒了uim的魷魚。uim為了不被炒,知道了了這些訊息 已經按時間的發生順...

P2629 好訊息,壞訊息

uim在公司裡面當秘書,現在有n條訊息要告知老闆。每條訊息有乙個好壞度,這會影響老闆的心情。告知完一條訊息後,老闆的心情等於之前老闆的心情加上這條訊息的好壞度。最開始老闆的心情是0,一旦老闆心情到了0以下就會勃然大怒,炒了uim的魷魚。uim為了不被炒,知道了了這些訊息 已經按時間的發生順序進行了排...

P2629 好訊息,壞訊息

描述 uim在公司裡面當秘書,現在有n條訊息要告知老闆。每條訊息有乙個好壞度,這會影響老闆的心情。告知完一條訊息後,老闆的心情等於之前老闆的心情加上這條訊息的好壞度。最開始老闆的心情是0,一旦老闆心情到了0以下就會勃然大怒,炒了uim的魷魚。uim為了不被炒,知道了了這些訊息 已經按時間的發生順序進...