喜聞樂見的大水題。
先離散化,求一下正的最長上公升子串行,再求一下反的最長下降子串行。然後看這兩個加起來等不等於|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...