NOIp模拟1 Incr(LIS的nlogn算法)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NOIp模拟1 Incr(LIS的nlogn算法)相关的知识,希望对你有一定的参考价值。
【分析】
这题就是拿总长度减去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算法)的主要内容,如果未能解决你的问题,请参考以下文章