poj2533
来源:互联网 发布:苹果网络锁怎么解除 编辑:程序博客网 时间:2024/05/21 10:06
涉及算法: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(最长递增序列)
- POJ 3159 Candies(dijkstra+heap&spfa+stack)
- Mac数据库管理工具Navigate Premium 10.0.16 中文版破解版安装详细
- Android快速开发系列 10个常用工具类
- rrdtool系列1---源码编译
- Java开发环境JDK的安装与配置
- poj2533
- B. Misha and Changing Handles
- 多线程开发之Semaphore
- Andorid学习(二)RelativeLayout布局LinearLayout布局
- 【C++】 引入一维数组的元素
- 项目经验——jboss 配置数据库连接池
- iPhone通过usb与windows实现通信
- SpringMVC概述
- 如何解析JSON数组,并只拿到其中的一个属性集