poj 2533
来源:互联网 发布:新浪股票财经数据接口 编辑:程序博客网 时间:2024/05/16 15:38
参考blog:http://blog.csdn.net/yysdsyl/article/details/4264650?reload
http://www.slyar.com/blog/longest-ordered-subsequence.html
http://www.slyar.com/blog/poj-2533-cpp.html
时间复杂度N^2
#include <stdio.h>#include <string.h>#define Max(a,b) a>b?a:bint main(){int input[1005],M[1005];int N;int max = 0;scanf("%d",&N);for(int i = 0;i < N;++i)scanf("%d",&input[i]);for(int i = 0;i < N;++i) M[i] = 1;for(int i = 0; i < N;++i){for(int j = 0; j < i;++j){if(input[j] < input[i]) M[i] = Max(M[i],M[j] + 1);}//M[i]存的是前i个的最长升序子序列,而最大的不一定是在M[N-1]if(max < M[i]) max = M[i];}//printf("%d\n",M[N-1]);printf("%d\n",max);return 0;}
时间复杂度NlgN
#include <stdio.h>int qurery_binary(int *array,int cmp,int begin,int end){//[begin,end]if(begin>end) return begin;int mid = (begin + end)/2;if(array[mid] > cmp) return qurery_binary(array,cmp,begin,mid-1);else if(array[mid] < cmp) return qurery_binary(array,cmp,mid+1,end);else return mid;}int main(int argc, char const *argv[]){int stack[1005];int N,top = 0,sub,tmp;scanf("%d",&N);for(int i = 0;i < N;++i){scanf("%d",&tmp);if(top != 0 && tmp <= stack[top-1]){ //if(tmp)sub = qurery_binary(stack,tmp,0,top-1);stack[sub] = tmp;}else{stack[top ++] = tmp;}}printf("%d\n",top);return 0;}
- POJ 2533
- POJ 2533
- POJ 2533
- poj 2533
- POJ 2533
- poj-2533
- poj--2533
- poj 2533
- POJ 2533
- POJ 2533
- POJ 2533
- poj 2533
- POJ-2533
- POJ 2533
- POJ 2533
- POJ 2533
- POJ 2533 O(NLogN)
- poj 2533 LCS
- JAVA入门书籍1(备查)
- hdu 1879 继续畅通工程 (并查集)
- 解决LR11录制不能打开IE8的问题
- TBBT的笑点
- WPF新手实践1:MVVM Light Toolkit(一、下载与安装)
- poj 2533
- makefile中的$@,$<,$^的意思
- Fiddler 教程
- 红皮书第一个实例:系统登录对话框
- Linux下安装有道词典
- WPF新手实践2:MVVM Light Toolkit(二、创建MvvmLight项目)
- IOS的一些东东~
- KMP算法详解——适合初学KMP算法的朋友
- WPF新手实践3:MVVM Light Toolkit(三、ViewModel和View)