單調遞增子串行的長度 nlogn

2021-09-19 19:15:00 字數 670 閱讀 3900

p3902 遞增

現有數列a1​,a2​,⋯,an​,修改最少的數字,使得數列嚴格單調遞增。

輸入格式:

第1 行,1 個整數n

第2 行,n 個整數a1​,a2​,⋯,an​

輸出格式:

1 個整數,表示最少修改的數字

輸入樣例#1:複製

3

1 3 2

輸出樣例#1:複製

1
• 對於50% 的資料,n≤10^3

• 對於100% 的資料,1≤n≤105,1≤ai​≤10^9

#includeusing namespace std;

const int maxn=100010;

int n,a[maxn],f[maxn],ans,num;

int erf(int l,int r,int x)

else

}return l;

}int main()

else

}//ans為單調遞增子串行的長度

cout

}

最長遞增子串行 nlogn

include using namespace std 2 1 5 3 6 4 8 9 7 上課講了這個,回去之後就用 實現以下 這個演算法的目標是 找到乙個最長的遞增子串行 o nlogn 的複雜度 思路是遇到小的就留下,更新的路程中 插入到這個序列當中 一開始看那個麻瓜 blog 理解錯了 然後...

最長遞增子串行nlogn的做法

費了好大勁寫完的 用線段樹維護的 nlogn的做法 再看了一下 大神們寫的 nlogn 額差的好遠 我寫的又多又慢 大神們寫的又少又快 時間 空間 量 哪個都趕不上大佬們的 這是我寫的 include include include include include include using nam...

最長單調遞增子串行

單調子串行包含有單調遞增子串行和遞減子串行,不失一般性,這裡只討論單調遞增子串行。首先,從定義上明確我們的問題。給定序列a1,a2,an,如果存在滿足下列條件的子串行 ai1 ai2 aim,其中i1即稱為乙個原序列的長度為m的單調遞增子串行,那麼,現在的問題是我們要找出乙個序列的最長的單調遞增子串...