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的單調遞增子串行,那麼,現在的問題是我們要找出乙個序列的最長的單調遞增子串...