HDU 1950 最长上升子序列
来源:互联网 发布:centos mosh 编辑:程序博客网 时间:2024/04/29 13:45
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1950
其实就是求最长上升子序列,不过要用nlogn的算法n*n会超时。学习最长子序列算法见博客:
1:http://blog.csdn.net/z_zhangyinqian/article/details/47980725
2:http://blog.csdn.net/z_zhangyinqian/article/details/47859617
HDU 1950代码:
#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int maxn=40005;const int INF=100000000;int a[maxn],dp[maxn];int find(int l,int r,int x){ if(l==r) return l; while(l<r) { int mid=(l+r)/2; if(dp[mid]<x) l=mid+1; else r=mid; } return l;}int main(){ int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); dp[i]=INF; } int j=0,len=0; dp[0]=-INF; for(int i=1;i<=n;i++) { if(a[i]>dp[len]) j=++len; else j=find(1,len,a[i]); dp[j]=min(a[i],dp[j]); } printf("%d\n",len); } return 0;}
0 0
- HDU 1950 最长上升子序列
- hdu 1950 最长上升子序列 nlogn
- hdu 1950 Bridging signals--二分法求最长上升子序列
- hdu 1950 Bridging signals 最长上升子序列
- HDU 1950最长上升子序列 学习nlogn
- hdu 1950 【最长上升子序列 复杂度nlogn】
- HDU 1025 最长上升子序列
- HDU 1423 最长上升公共子序列
- hdu 1423 最长公共上升子序列
- HDU 1257 最长上升子序列
- HDU 1087(最长上升子序列)
- HDU 1160(类似于最长上升子序列)
- hdu 4512 最长公共上升子序列
- HDU 1087 最长上升子序列
- 最长上升子序列(LIS)(HDU 1025)
- hdu 1257 最长上升子序列问题
- hdu 1069 (最长上升子序列)
- hdu 1160 排序 + 最长上升子序列
- MySQL控制(关闭、打开)自动提交功能
- 生成二维码的jquery插件
- python学习--核心编程5习题以及知识点记录
- word-wrap、white-space和word break的区别
- RESTful Java client with RESTEasy client framework
- HDU 1950 最长上升子序列
- 工程师薪酬分析:Java 不是过去式
- 文章标题
- Java面试--io
- 使用InjectView和findViewById说拜拜
- Linux下Tomcat的安装配置
- 给HashMap做个深度剖析手术
- bootstrap入门
- 表达式树 csu1655 文本计算器