pku 1631 Bridging signals nLogn效率的最长上升子序列
2010-08-29 22:59
253 查看
nLogn效率的最长上升子序列,第一次用二分查找
题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1631
题目:
http://acm.pku.edu.cn/JudgeOnline/problem?id=1631
#include <stdio.h> #include <string.h> #define maxn 40001 int num[maxn]; //B[i]表示序列长度为i的所有序列的末尾元素的最小值 int B[maxn]; //opt[i]表示以第i个元素结尾的序列中的最长上升子序列的长度 int opt[40001]; int main(){ freopen("data.txt","r",stdin); int T,n,i; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=1;i <= n;i++) scanf("%d",num + i); memset(opt,1,sizeof(opt)); int s,left,right,mid; int blen = 0; int max = 0; for(i = 1;i <= n;i++){ left = 1; right = blen; s = num[i]; while(left <= right){ mid = (left + right) / 2; if(B[mid] < s) left = mid + 1; else right = mid - 1; } opt[i] = left; B[left] = s; blen = blen < left ? left : blen; max = max < opt[i] ? opt[i] : max; } printf("%d/n",max); } return 0; }
相关文章推荐
- POJ 1631 Bridging signals DP(最长上升子序列)
- pku 2533 最长上升子序列
- PKU2533 最长上升子序列 DP
- poj1631 Bridging signals 加强版最长上升子序列
- poj 1631 Bridging signals 最长上升子序列的O(n*lgn)方法
- POJ 1631 —— Bridging signals 最长上升子序列
- POJ 1631 Bridging signals (LIS:最长上升子序列)
- POJ1631 最长上升子序列的新做法0(n)
- POJ 1631 Bridging signals [最长上升子序列O(nlog(n))]
- 动态规划(线性模型):POJ 1631 最长上升子序列
- POJ 1631-Bridging signals(最长上升子序列+二分搜索)
- POJ1631——Bridging signals(动态规划,最长上升子序列应用)
- POJ 1631 Bridging signals(LIS:最长上升子序列)
- poj1631 dp 最长上升子序列LIS
- POJ1631-Bridging signals-最长上升子序列
- POJ 1631 Bridging signals 最长上升子序列
- zoj 1986 || poj 1631 Bridging Signals(最长上升子序列N*logN)
- poj 1631离散化加树状数组优化 最长上升子序列LIS nlogn做法
- poj - 1631 最长上升子序列 Java
- POJ 1631 Bridging signals 解题报告(附详细分析)最长上升子序列的dp+二分