NY--17 -- 单调递增最长子序列 [经典DP]
来源:互联网 发布:手机淘宝痕迹清理软件 编辑:程序博客网 时间:2024/06/16 10:05
单调递增最长子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:4
- 描述
求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入
第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
- 输出
输出字符串的最长递增子序列的长度
- 样例输入
- 3
aaa
ababc
abklmncdefg - 样例输出
- 1
3
7
Code:
如上图,num[i]存放输入的数字,f[i]表示该数字签有多少个单调递增的数字,包括自己
状态方程为 dp[i] = max(dp[i], dp[i-1]+1)
我写的是从第i个位置倒着找比第i个小的,其实和从第一个开始找到第i个找比他大的是一样的
如果找到一个比当前的dp值大的dp值,则替换它
#include"stdio.h"#include"string.h"int main(){int t,i,j,max,len;char str[10010];int length[10010];scanf("%d",&t);while(t--){scanf("%s",str);len = strlen(str);for(i=0;i<len;i++)length[i] = 1;for(i=1;i<len;i++){for(j=i-1;j>=0;j--){if(str[i]>str[j] && length[i]<=length[j]+1)length[i] = length[j]+1; }}max = 0;for(i=0;i<len;i++){if(max<length[i])max = length[i];}printf("%d\n",max);}}
- NY--17 -- 单调递增最长子序列 [经典DP]
- 单调递增最长子序列(经典dp)
- ny-单调递增最长子序列
- 单调递增最长子序列(LIS)【NY】-17
- 经典Dp-单调递增最长子序列(经典dp)
- NYOJ - 单调递增最长子序列(经典dp)
- nyoj17 单调递增最长子序列(DP)
- 单调递增最长子序列DP+二分
- 【DP入门】单调递增最长子序列
- 单调递增最长子序列 【DP】
- NYOJ 题目17 单调递增最长子序列 (DP)
- NYOJ 17 单调递增最长子序列 DP
- nyoj 17 单调递增最长子序列 【dp】
- NYOJ 17 单调递增最长子序列(DP)
- NYOJ 17-单调递增最长子序列(典型DP)
- 经典dp最长递增子序列
- NYOJ-17:单调递增最长子序列
- 题目17: 单调递增最长子序列
- HttpClient教程
- tar 的使用
- Activity---Activity之间数据交流(onActivityResult的用法)
- C#自动内存管理
- Ubuntu12.04安装交叉编译工具链arm-linux-gcc
- NY--17 -- 单调递增最长子序列 [经典DP]
- ios 视图迁移
- .net截取字符串性能测试
- JS在火狐和IE下差别
- iOS ui适配问题
- Error occurred in deployment step 'Add Solution': 此解决方案包含面向全局程序集缓存的一个或多个程序集。您应该为将保存在全局程序集缓存中的任何程序集使用
- android之驱动 LCD
- C#委托探索之猫和老鼠
- 文件和字节流的相互转换