码迷,mamicode.com
首页 > 编程语言 > 详细

NOIp模拟1 Incr(LIS的nlogn算法)

时间:2017-08-07 10:23:25      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:logs   space   for   inf   bsp   blog   noip   its   using   

【分析】

这题就是拿总长度减去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算法)

标签:logs   space   for   inf   bsp   blog   noip   its   using   

原文地址:http://www.cnblogs.com/shamman/p/7297402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!