2097 LIS
来源:互联网 发布:unity3d ui 动画 编辑:程序博客网 时间:2024/05/17 05:09
输入n个整数,a1,a2,...,an
求它的LIS(最长不降子序列)长度。
- 输入
多组测试数据,每组占两行,第一行是一个整数n(1<=n<=50),第二行有n个整数,表示a1,...,an. (0<=ai<=100000)
- 输出
输出这n个整数的LIS长度。
- 样例输入
3
1 3 3
3
5 2 1
- 样例输出
3
1
模拟题
#include <iostream>#include <string>using namespace std;const int N = 1001;int a[N], C[N], f[N]; // f[i]用于记录a[0i]的最大长度int bsearch(const int *C, int size, const int &a) {int l=0, r=size-1;while( l <= r ) {int mid = (l+r)/2;if( a >= C[mid-1] && a < C[mid] ) return mid; // >&&<= 换为: >= && <else if( a < C[mid] ) r = mid-1;else l = mid+1;}}int LIS(const int *a, const int &n){int i, j, size = 1;C[0] = a[0]; f[0] = 1;for( i=1; i < n; ++i ){if( a[i] < C[0] ) j = 0; // <= 换为: <else if( a[i] >=C[size-1] ) j = size++; // > 换为: >= else j = bsearch(C, size, a[i]);C[j] = a[i]; f[i] = j+1;}return size;}int main(void){int data[32];int n;while(cin>>n){for(int i=0;i<n;i++)cin>>data[i];cout<<LIS(data,n)<<endl;}return 0;}
- 2097 LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS
- LIS++
- lis
- lis
- LIS
- 2094 平衡女生——弱弱版
- 2095 平衡女生——小强版
- 不可或缺的LTO磁带存储
- google map系列教程的地址
- linux设备驱动第三版笔记---->linux驱动重要数据结构之struct file
- 2097 LIS
- 今天我也遇到这个问题----ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源 ,收藏一下解决方法
- Button控件的OnClientClick与验证控件冲突的问题
- 关于做Android+J2ee系统集成开发的一点心得
- StageFright框架流程解读
- linux设备驱动学习(2) 构造和运行模块
- 高仿真PLC的工业控制板制作的原理与研发经验(上)
- IT&快消
- OpenGL ES 基础知识笔记