51nod1218 最長遞增子串行 V2

2022-04-09 09:35:17 字數 373 閱讀 1433

喜聞樂見的大水題。

先離散化,求一下正的最長上公升子串行,再求一下反的最長下降子串行。然後看這兩個加起來等不等於|lis|+1,然後如果能做某個位置的只出現一次,它就是不可替代的。(看**吧

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

const int n=50005;

int t[n],n,a[n],lsh[n],cnt[n],tot,g[n],f[n];

void add(int i,int mx)

int query(int i)

int ans,u;

int main()

51nod1218 最長遞增子串行 V2

看見標籤推薦順便就做了吧 記 f i g i 為 i 的含 i 的字首最長遞增子串行和字尾遞增子串行 只要滿足 f i g i lis 1 那麼 i 就是可能的 對於 i 而言,其一定出現在 lis 中時,當且僅當 f i 唯一 如果存在 i,j i j 滿足 f i f j 那麼一定有 a i a...

51nod 1134 最長遞增子串行

1134 最長遞增子串行 基準時間限制 1秒 空間限制 131072 kb 分值 0給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n為序列的長度 2 ...

51nod 1134 最長遞增子串行

1134 最長遞增子串行 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出長度為n的陣列,找出這個陣列的最長遞增子串行。遞增子串行是指,子串行的元素是遞增的 例如 5 1 6 8 2 4 5 10,最長遞增子串行是1 2 4 5 10。input 第1行 1個數n,n...