NOIp模擬1 Incr(LIS的nlogn算法)
阿新 • • 發佈:2017-08-07
算法 問題 () int bsp logs style out noi
【分析】
這題就是拿總長度減去LIS啦,很明顯。
問題是數據範圍,這裏用n^2就會超時,所以我們選用LIS的nlogn算法,如下。
【代碼】
1 #include <bits/stdc++.h> 2 #define inf 0x7fffffff 3 using namespace std; 4 5 int n, a[100005], k, f[100005], ans; 6 int g[100005];//記錄當前的最優子序列 7 8 int main() { 9 cin >> n; 10 for (int i=1;i<=n;++i) { 11 cin >> a[i];12 g[i]=inf; 13 } 14 for (int i=1;i<=n;++i) { 15 k=lower_bound(g+1, g+n+1, a[i])-g;//找到a[i]可插入的位置 16 g[k]=a[i]; 17 f[i]=k; 18 } 19 for (int i=1;i<=n;++i) 20 ans=max(ans, f[i]); 21 cout << n-ans << endl; 22 }
NOIp模擬1 Incr(LIS的nlogn算法)