poj2533
来源:互联网 发布:吉利知豆电动汽车租赁 编辑:程序博客网 时间:2024/05/17 23:04
设计算法:dp+LIS
题目大意给定一个序列A={a1,a2,…,an},现在要求出A的一个最长上升子序列的长度
代码如下:
题目大意给定一个序列A={a1,a2,…,an},现在要求出A的一个最长上升子序列的长度
代码如下:
import java.util.Scanner;public class Main_2533 {static int n;//序列的长度static int[] a;//a[i]:序列的第i个值static int[] dp;//dp[i]:以a[i]结尾的序最长子序列的长度public static void main(String[] args) {Scanner in=new Scanner(System.in);n=in.nextInt();a=new int[n+1];dp=new int[n+1];b=new int[n+1];for(int i=1;i<=n;i++){a[i]=in.nextInt();}dp2();}//ACstatic void dp(){dp[1]=1;int max=1;for(int i=2;i<=n;i++){dp[i]=1;for(int j=1;j<i;j++){if(a[i]>a[j]){if(dp[i]<dp[j]+1){dp[i]=dp[j]+1;}}}if(dp[i]>max){max=dp[i];}}System.out.println(max);}//ACstatic int[] b;static void dp2(){b[1]=a[1];int m=1;for(int i=2;i<=n;i++){if(a[i]>b[m]){m++;b[m]=a[i];}else {int j=m-1;while(a[i]<=b[j]){j--;}//b[i]<a[i]<=b[j+1];b[j+1]=a[i];} }System.out.println(m);}}
0 0
- poj2533
- POJ2533
- poj2533
- poj2533
- poj2533
- POJ2533
- poj2533
- POJ2533
- poj2533
- poj2533--LIS
- poj2533 LongestOrderedSubsequence
- poj2533(LIS)
- poj2533 LIS
- POJ2533(LIS)
- poj2533解题报告
- poj2533解题报告
- poj2533 简单DP LIS
- poj2533(最长递增序列)
- GreenPlum 介绍 - client认证、限制并发、SSL连接
- KVC的使用 -- 没整明白呢 先留个位置 第四天课程的结尾
- 欢迎使用CSDN-markdown编辑器
- Android系统架构
- STL中queue详解
- poj2533
- 蓝桥杯 数据压缩
- 数字化时代的软件开发
- 为什么数据库有这条数据,却怎么也查询不出来
- ThreadLocal模式的实现机理
- 多线程初探(一)
- PostgreSQL新手入门
- Jsp状态管理(Cookie和Session的对比)
- C++语言零基础入门教程:2.2 C/C++头文件大揭秘,""和<>有什么区别