Luogu P2422良好的感覺(單調棧)

2022-05-01 01:48:14 字數 803 閱讀 6440

題目鏈結

寫**能力需要極大提公升。我在五分鐘之內想到了單調棧,然後花了乙個小時的時間去看我單調佇列為啥寫錯了……

首先這題需要轉換自己的思維。列舉所有「最小點」,然後看它往左往右最大能擴充套件多少。

維護乙個單調遞增的序列,彈棧時就會是這種情況:

設被彈出去的元素是s,那它為什麼會被彈出去呢?因為它比當前元素大。

比當前元素大說明了什麼呢?說明如果有乙個區間以它為最小值,那這個區間向右擴充套件的極限就在當前元素前面。因為區間不能繼續向右擴充套件,一擴充套件,區間就包含當前元素了,那元素s就不是最小值了,而我們這個區間又是以s為最小值的區間……

所以我們分析出了區間的右端點。區間的左端點在棧頂的下面乙個元素停住。推理同上。

於是乙個區間列舉成功。可以把這個區間的價值和當前答案比對並更新答案。

**如下。

#include#include

#include

#include

#include

using

namespace

std;

long

long

ans;

long

long sum[1000010

];long

long que[1000010

];int d[1000010

],t;

intmain()

d[++t]=i;

}while

(t) printf(

"%lld

",ans);

return0;

}

luogu P2422 良好的感覺 單調棧

kkk做了乙個人體感覺分析器。每一天,人都有乙個感受值ai,ai越大,表示人感覺越舒適。在一段時間 i,j 內,人的舒適程度定義為 i,j 中最不舒服的那一天的感受值 i,j 中每一天感受值的和。現在給出kkk在連續n天中的感受值,請問,在哪一段時間,kkk感覺最舒適?輸入格式 第一行為n,代表資料...

P2422 良好的感覺

kkk 做了乙個人體感覺分析器。每一天,人都有乙個感受值 a ia i a ia i 越大,表示人感覺越舒適。在一段時間 left i,j right i,j 內,人的舒適程度定義為 left i,j right i,j 中最不舒服的那一天的感受值 times left i,j right i,j ...

luogu 2422 良好的感覺

kkk做了乙個人體感覺分析器。每一天,人都有乙個感受值ai,ai越大,表示人感覺越舒適。在一段時間 i,j 內,人的舒適程度定義為 i,j 中最不舒服的那一天的感受值 i,j 中每一天感受值的和。現在給出kkk在連續n天中的感受值,請問,在哪一段時間,kkk感覺最舒適?第一行為n,代表資料記錄的天數...