nyoj17 单调递增最长子序列
2017-10-29 21:30
323 查看
时间限制:3000 ms | 内存限制:65535 KB
难度:4
描述求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000输出输出字符串的最长递增子序列的长度样例输入
样例输出
dp[i]表示前I个数最长单调递增子序列长度
递推式:if(s[i]>s[j])(i>j) dp[i]=dp[j]+1;
java代码
难度:4
描述求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000输出输出字符串的最长递增子序列的长度样例输入
3 aaa ababc abklmncdefg
样例输出
1 3 7
dp[i]表示前I个数最长单调递增子序列长度
递推式:if(s[i]>s[j])(i>j) dp[i]=dp[j]+1;
java代码
import java.util.Scanner; public class ny17 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); int n,m; String str; int []MaxLen=new int[10001]; char[] s=new char[10001]; n=input.nextInt(); int max=0; while(n>0){ str=input.next(); s=str.toCharArray(); LIS(MaxLen,s); for(int i=0;i<s.length;i++){ if(max<MaxLen[i]){ max=MaxLen[i]; } } System.out.println(max); max=0; n--; } } private static void LIS(int[] maxLen, char[] s) { // TODO Auto-generated method stub for(int i=0;i<s.length;i++){ maxLen[i]=1; for(int j=0;j<i;j++){ if(s[i]>s[j]){ if(maxLen[i]<maxLen[j]+1){ maxLen[i]=maxLen[j]+1; } } } } } }
相关文章推荐
- NYOJ 17 单调递增最长子序列
- NYOJ17 单调递增最长子序列(最长单调递增子序列)
- NYOJ 17:单调递增最长子序列【二分】
- 单调递增最长子序列 (NYOJ 17) [动态规划]
- NYOJ-17-单调递增最长子序列【动态规划】
- nyoj17-单调递增最长子序列
- NYOJ 17 单调递增最长子序列(DP)
- nyoj 17 单调递增最长子序列
- nyoj17单调递增最长子序列--动态规划-初步
- NYOJ 17 单调递增最长子序列 (LIS模板)
- 单调递增最长子序列 && 拦截导弹(nyoj 17 && nyoj 79)
- nyoj17 单调递增最长子序列(经典dp三)
- NYOJ 17 单调递增最长子序列
- nyoj_17_单调递增最长子序列_201403121516
- NYoj 17 单调递增最长子序列[典型动态规划1]
- NYOJ-17 单调递增最长子序列
- 动态规划之-----单调递增最长子序列(nyoj17)
- nyoj 17单调递增最长子序列
- NYOJ - 17 - 单调递增最长子序列(动态规划--LIS--单调递增最长子序列)
- NYOJ17 单调递增最长子序列 【二分法】+【动态规划】