nyoj17-单调递增最长子序列-(dp)
17-单调递增最长子序列
内存限制:64MB 时间限制:3000ms 特判: No
通过数:125 提交数:259 难度:4
题目描述:
如:dabdbf最长递增子序列就是abdf,长度为4
输入描述:
第一行一个整数0<n<20,表示有n个字符串要处理
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出描述:
输出字符串的最长递增子序列的长度
样例输入:
3
aaa
ababc
abklmncdefg
样例输出:
1
3
7
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<string>
#include<stack>
#include<set>
#include<queue>
#include<cstring>
#define inf 0x3f3f3f3f
#define ll long long
using namespace std;
int t;
char a[];
int dp[]; int main()///nyoj17 单调递增最长子序列 lcs
{
scanf("%d",&t);
while(t--)
{
memset(dp,,sizeof(dp));///一开始 都是0
scanf("%s",a);
int len=strlen(a);
int maxx=;
for(int i=;i<len;i++)
{
maxx=;///表示当前i个字符的中 最大的lcs 把前面的j个遍历一下,只为找到最大的那一个
for(int j=;j<i;j++)
{
if( a[j]<a[i] && maxx<dp[j])
///如果第i个字符 大于 前面的第j个字符 则表明dp[i]一定要比dp[j]大,先把前面的dp[j]的最大值给maxx,
maxx=dp[j];
}
dp[i]=maxx+;///最后+1,表示dp[i] 比 前面的dp[j]中的最大值 多一个上升子序列
}
sort(dp,dp+len);///不一定是最后一个最大,排序找到最大值
printf("%d\n",dp[len-]);
}
return ;
}
nyoj17-单调递增最长子序列-(dp)的更多相关文章
- NYOJ17,单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描写叙述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf.长度为4 输入 第 ...
- 【LCS,LIS】最长公共子序列、单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- nyoj 17 单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- nyoj 单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- 最长递增子序列问题 nyoj 17单调递增最长子序列 nyoj 79拦截导弹
一, 最长递增子序列问题的描述 设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1< ...
- ny17 单调递增最长子序列
单调递增最长子序列时间限制:3000 ms | 内存限制:65535 KB难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- nyoj 题目17 单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- nyoj_17_单调递增最长子序列_201403121516
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- 单调递增最长子序列(南阳理工ACM)
描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串 ...
随机推荐
- NUMA的取舍与优化设置
在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%; 在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能. 安装numactl: ...
- python中列表删除和多重循环退出
在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子: 列表删除里面的坑 比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,10 ...
- BZOJ4195 luoguP1955 NOI2015D1T1 程序自动分析
题意:给定n个(xi = xj) 或 (xi != xj) 的条件,问是否可能成立 BZOJ链接:http://www.lydsy.com/JudgeOnline/problem.php?id=419 ...
- python库pandas
由于在机器学习中经常以矩阵的方式来表现数据,那么我们就需要一种数据结构来存储和处理矩阵.pandas库就是这样一个工具. 本文档是一个学习笔记,记录一些常用的命令,原文:http://www.cnbl ...
- 36. Oracle查询数据库中所有表的记录数
select t.table_name,t.num_rows from user_tables t
- 静态属性@property
property 作用其实把类里面的逻辑给隐藏起来(封装逻辑,让用户调用的时候感知不到你的逻辑) property实例1:class Room: def __init__(self): pass @p ...
- win7系统svn创建版本库
1. 在svn所在的服务器上, 找到它的目录, 右击创建项目名称文件夹, 然后右击该文件夹创建版本库 2. 创建版本库之后, 会出现几个文件夹, 打开conf文件夹, 修改里面的配置文件 3. 在自 ...
- MiniDao支持ID自增主键策略,使用讲解
用法示例: /** * 插入数据(ID采用自增策略,并返回自增ID) * @param employee */ @IdAutoGenerator(generator="native" ...
- pod引用第三方库的几种方式
pod引用库的原理,本质上是去找.podspec文件,podspec中包含库的地址及最新的版本号(tag标签),如果pod时没有指定版本,则pod install时会去下载podspec文件中指定的最 ...
- curator 实现分布式一致性锁
最近准备在项目中引入分布式锁,故而研究基于zookeeper的curator框架. 网上资料不多,自己研究其源码发现,这个框架已经帮我做了很多现成的实现. 下面介绍下锁的实现: 通过源码中Lockin ...