博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
碱基序列的儿子最长上涨
阅读量:6500 次
发布时间:2019-06-24

本文共 703 字,大约阅读时间需要 2 分钟。

Font Size:

给出一个由n个数组成的序列x[1..n],找出它的最长单调上升子序列的长度。即找出最大的长度m和a1,a2……,am,使得  a1 < a2 < … … < am 且 x[a1] < x[a2] < … … < x[am]。

先输入一个整数t(t<=200),代表測试组数。每组数据先输入一个N,代表有N个数(1<=N<=1000).输入N个正整数,a1。a2。a3.....an(0<=ai<=100000).

每组输出一个整数,代表最长的长度。

171  7  3  5  9  4  8

4
代码例如以下:
#include <stdio.h>
#define maxn 1005
int
a[maxn];
int
dp[maxn];
int
max(
int
x,
int
y)
{
    
return
x>y?x:y;
}
int
main()
{
    
int
t,n;
      
    
scanf
(
"%d"
,&t);
    
while
(t--)
    
{
        
scanf
(
"%d"
,&n);
        
int
i,j;
        
for
(i=1;i<=n;i++)
            
scanf
(
"%d"
,&a[i]);
        
for
(i=0;i<=n;i++)
            
dp[i]=1;
        
int
ans=0;
        
for
(i=1;i<=n;i++)
        
{
            
for
(j=1;j<i;j++)
                
if
(a[j]<a[i])
                    
dp[i]=max(dp[i],dp[j]+1);
            
ans=max(dp[i],ans);
        
}
        
printf
(
"%d\n"
,ans);
    
}
    
return
0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
[CSS3] CSS Media Queries
查看>>
图形绘制 Canvas Paint Path 详解
查看>>
[PHP] 链表数据结构(单链表)
查看>>
eclipse使用tomcat进行部署时编译代码不一致的处理
查看>>
iOS: 音效和音乐的播放,封装的工具类
查看>>
CAD版本知识
查看>>
jQuery选择器之属性选择器Demo
查看>>
Flink架构、原理与部署测试
查看>>
crm操作电子邮件
查看>>
Python练习笔记——斐波那契数列
查看>>
Android-studio 连接真机 调试weex项目
查看>>
IDEA git修改远程仓库地址
查看>>
ConcurrentBag扩展 批量加入
查看>>
工作总结 表单提交中 Input 设置 disabled readonly
查看>>
linux系统调用是通过软中断实现的吗
查看>>
中国近12个月以来的搜索引擎市场份额
查看>>
Spring Boot热部署(springloader)
查看>>
刚体转动的稳定性
查看>>
如何恢复U盘数据,不会的看过来
查看>>
Web API(六):使用Autofac实现依赖注入
查看>>