NYOJ 17(LIS)

简介: 单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0
 

单调递增最长子序列

时间限制:3000 ms  |  内存限制:65535 KB 

难度:4

描述 

求一个字符串的最长递增子序列的长度

如:dabdbf最长递增子序列就是abdf,长度为4 

输入 

第一行一个整数0<n<20,表示有n个字符串要处理

随后的n行,每行有一个字符串,该字符串的长度不会超过10000 

输出 

输出字符串的最长递增子序列的长度 

样例输入 

3

aaa

ababc

abklmncdefg样例输出 

1

3

7

 

 在求以ai为末元素的最长递增子序列时,找到所有序号在L前面且小于ai的元素aj,即j<i且aj<ai。如果这样的元素存在,那么对所有aj,都有一个以aj为末元素的最长递增子序列的长度f(j),把其中最大的f(j)选出来,那么f(i)就等于最大的f(j)加上1,即以ai为末元素的最长递增子序列,等于以使f(j)最大的那个aj为末元素的递增子序列最末再加上ai;如果这样的元素不存在,那么ai自身构成一个长度为1的以ai为末元素的递增子序列。

 

 

//AC

 

#include<stdio.h>

#include<string.h>

#define N 10001

int dp(char str[],int n)

{

int i,j;int max;int d[N];

for(i=0;i<N;i++)

d[i]=1;

for(i=n-2;i>=0;i--)

for(j=i+1;j<=n-1;j++)

if(str[j]>str[i]&&d[i]<d[j]+1)

d[i]=d[j]+1;//不能是d[i]++,因为要保证递增

max=d[0];

for(i=1;i<n;i++)

{

if(max<d[i])

max=d[i];

}

return max;

}

int main()

{

int i,j,len;int T,ans;

char str[N];

scanf("%d",&T);

for(i=1;i<=T;i++)

{

scanf("%s",str);

//memset(str,0,sizeof(str));

len=strlen(str);

ans=dp(str,len);

printf("%d\n",ans);

}

return 0;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//wa,必须把d[N]开在函数内并初始化为1,

#include<stdio.h>

#include<string.h>

#define N 10001

int d[N];

char str[N];

int dp(char str[],int n)

{

int i,j;int max;

for(i=n-2;i>=0;i--)

for(j=i+1;j<=n-1;j++)

if(str[j]>str[i]&&d[i]<d[j]+1)

d[i]=d[j]+1;//不能是d[i]++,因为要保证递增

max=d[0];

for(i=1;i<n;i++)

{

if(max<d[i])

max=d[i];

}

return max;

}

int main()

{

int i,j,len;int T,ans;

scanf("%d",&T);

for(i=0;i<N;i++)

d[i]=1;

for(i=1;i<=T;i++)

{

scanf("%s",str);

//memset(str,0,sizeof(str));

len=strlen(str);

ans=dp(str,len);

printf("%d\n",ans);

}

return 0;

}

 

 

 

 

目录
相关文章
|
7月前
|
存储 监控 项目管理
LIS系统字典模块功能
LIS系统字典模块功能
99 0
|
7月前
|
前端开发 JavaScript NoSQL
全套检验系统(LIS)源码 云LIS系统源码 区域医疗云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件。这套系统通常与其他信息系统比如医院信息系统(HIS)连接。实验室信息系统由多种实验室流程模块构成,这些模块可以依据客户的实际情况进行选择和配置。选择适合的实验室信息系统对于使用者非常重要,往往要通过几个月的研究和计划。系统的安装调试对于不同的研究阶段也从几周到几个月不等,实验室的研究工作有多少种就有多少种实验室信息系统。大型的实验室信息系统几乎包括了所有的实验室研究的学科内容,比如血液学、化学、免疫学、血库、外科病理学、解剖病理学、在线细胞计数和微生物学。这个条目将说明临
88 2
|
7月前
|
调度 数据库
云LIS系统概述
云LIS是结合计算机网络化信息系统,无缝嵌入到云HIS系统中连接各种检验分析仪器的技术和现代化管理,应用于实验室质量控制及管理的信息系统,是云HIS系统的一个重要组成部分。LIS系统与HIS系统结合后,检验科室内可以通过计算机分析各种检验仪器传出的检验数据,生成检验报告后并上传到网络数据库中,临床医生则通过网络方便、快捷地查询病人的检验结果。
199 2
|
7月前
|
运维 数据管理 持续交付
医学检验科LIS系统,LIS检验系统源码
质控品管理功能简介:维护各检验设备的质控品,为质控品指定检验项目,为每一个项目指定靶值、标准差、质控方法。 质控规则管理功能简介:维护质控规则,为每一个规则指定规则格式、测定值N和X倍方差值。 设备质控设置功能简介:为质控设备指定使用的质控规则。 质控报告管理功能简介:根据不同的质控设备和不同的质控批次来查看质控数据,同时可查看和打印质控图。
91 2
|
7月前
LIS,LCS,LCIS
LIS,LCS,LCIS
49 0
|
7月前
|
存储 安全 测试技术
LIS和LIMS有什么区别?
LIS和LIMS有什么区别?
211 0
LIS和LIMS有什么区别?
|
7月前
|
人工智能 运维 Oracle
什么是LIS系统?LIS系统的优势有哪些?
什么是LIS系统?LIS系统的优势有哪些?
1186 0
|
7月前
|
数据采集 人工智能 监控
LIS系统源码
LIS系统源码
133 0
|
7月前
|
存储 Oracle 数据管理
C#医院LIS系统源码 LIS实验室管理信息系统源码 LIS检验系统源码
C#医院LIS系统源码 LIS实验室管理信息系统源码 LIS检验系统源码
62 0
|
7月前
|
前端开发 JavaScript BI
【C# 6.0】云LIS平台源码
【C# 6.0】云LIS平台源码
91 0