51nod 1134 最长递增子序列 nlogn lis
来源:互联网 发布:怎样安装t3软件 编辑:程序博客网 时间:2024/06/06 02:49
记录下模板
#include <map>#include <queue>#include <cmath>#include <cstdio>#include <cstring>#include <stdlib.h>#include <iostream>#include <algorithm>#define maxn 70000using namespace std;int b[maxn],dp[maxn];int find_it(int x,int len){ int l,r,m; l=1,r=len; while(l<r){ m=(l+r)>>1; if(dp[m]>=b[x])r=m; else l=m+1; } return l;}int main(){ int t,n,la,lb,cnt=1,tmp; while(~scanf("%d",&n)){ for(int i=1;i<=n;++i)scanf("%d",&b[i]); tmp=1; dp[1]=b[1]; for(int i=2;i<=n;++i) if(b[i]>dp[tmp]) dp[++tmp]=b[i]; else{ int pos=find_it(i,tmp); dp[pos]=b[i]; } printf("%d\n",tmp); } return 0;}/*13 6 71 7 5 4 8 3 91 4 3 5 6 2 8 9*/
更简洁的///严格递增
#include <map>#include <queue>#include <cmath>#include <cstdio>#include <cstring>#include <stdlib.h>#include <iostream>#include <algorithm>#define maxn 70000using namespace std;int b[maxn],dp[maxn];int main(){ int t,n,la,lb,cnt=1,tmp; while(~scanf("%d",&n)){ for(int i=1;i<=n;++i)scanf("%d",&b[i]); tmp=0; for(int i = 1; i <= n; i ++){ int pos=lower_bound(dp,dp+tmp,b[i])-dp; dp[pos]=b[i]; if(pos==tmp) tmp++; } printf("%d\n",tmp); } return 0;}/*13 6 71 7 5 4 8 3 91 4 3 5 6 2 8 9*/
0 0
- 51nod 1134 最长递增子序列 nlogn lis
- 51 Nod 1134 最长递增子序列 LIS NlogN 写法
- 51nod 1134 最长递增子序列(LIS)
- 51Nod-1134 最长递增子序列【LIS】
- 51Nod-最长递增子序列(nlogn算法)
- 最长递增子序列LIS的O(nlogn)的求法
- ZOJ2319 Beautiful People(贪心,最长递增子序列nlogn,LIS)
- 51nod 1134 最长递增子序列
- 51nod 1134 最长递增子序列
- 51nod 1134 最长递增子序列
- [51nod]1134 最长递增子序列
- 51nod 1134 最长递增子序列
- 51Nod 1134 最长递增子序列
- 51nod 1134最长递增子序列
- 51nod 1134 最长递增子序列
- 51Nod 1134 最长递增子序列
- 【51nod】1134 最长递增子序列
- 51Nod-1134 最长递增子序列
- java构造器小结
- 【图文详解】scrapy爬虫与动态页面——爬取拉勾网职位信息(2)
- activiti modeler在线编辑器关闭跳转路劲自定义
- [leetcode] 65. Valid Number 解题报告
- Leetcode: Roman to integer
- 51nod 1134 最长递增子序列 nlogn lis
- js判断IE版本
- 系统属性调用评估报告
- 第10、11周项目3 警察和厨师(1)
- 什么是Node.js
- 231. Power of Two
- Spark入门实战系列--5.Hive(上)--Hive介绍及部署
- 优先队列-堆排序
- Post方式请求网络数据