ny214 单调递增子序列(二) 动态规划
单调递增子序列(二)
- 描述
-
给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。
如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。
- 输入
- 有多组测试数据(<=7)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0<n<=100000)。
数据以EOF结束 。
输入数据保证合法(全为int型整数)! - 输出
- 对于每组测试数据输出整形数列的最长递增子序列的长度,每个输出占一行。
- 样例输入
-
7
1 9 10 5 11 2 13
2
2 -1 - 样例输出
-
5
1
常规方法,会超时的,AC代码一:#include<stdio.h>
#include<string.h>
int main()
{
int b[],a[];
int i,j,n,t,max;
while(scanf("%d",&t)!=EOF)
{ max=;
memset(b,,sizeof(b));
for(i=;i<t;i++)
scanf("%d",&a[i]);
b[] = a[];
for(i = , j = ; i < t; i++)
{ if(a[i]> b[j-])//判断如果出现后面的有大于前面的数就保存起来;
b[j++] = a[i];//保存的同时,j的值也在不断的增大,当保存到最后,j的值就是最后的最大长度了;
else{
for(int k = ; k < j; k++)
{
if(a[i] < b[k]){
b[k] = a[i];
break;
}
}
}
}
printf("%d\n",j);
}
return ;
}AC代码二:
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int dp[];
int main()
{
int i,a,t,k,j,n,mm;
while(scanf("%d",&n)!=EOF)
{ k=;memset(dp,,sizeof(dp));mm=;
cin>>dp[];
for(i=;i<n;i++)
{
scanf("%d",&a);
if(a<dp[])
dp[]=a;
else if(a>dp[k-])
dp[k++]=a;
else
{
for(j=;j<k;j++)
{
if(a<dp[j] && a>dp[j-])
{dp[j]=a;break;}
else if(a<dp[j])
break;
}
}
}
cout<<k<<endl;
}
return ; }超时的代码:
#include<stdio.h>
#include<string.h>
//int b[100010]={0};
int main()
{
int a[],b[];
int i,j,n,t,max;
while(scanf("%d",&t)!=EOF)
{max=;
memset(b,,sizeof(b));
scanf("%d",&a[]);
for(i=;i<t;i++)
{
scanf("%d",&a[i]);
for(j=;j<i;j++)
if(a[i]>a[j] && b[j]+>b[i])
b[i]++;
// printf("%d ",b[i]);
if(b[i]>max)
max=b[i];
}
/*for(i=0;i<t;i++)
{if(b[i]>max)
max=b[i];
}*/
printf("%d\n",max+);
}
return ;
}
ny214 单调递增子序列(二) 动态规划的更多相关文章
- nyist oj 214 单调递增子序列(二) (动态规划经典)
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 ,a2...,an}(0<n<=100000).找出单调递增最长子序列,并求出其长度 ...
- nyoj 单调递增子序列(二)
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长 ...
- nyoj 214 单调递增子序列(二)
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 ,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度. ...
- nyoj 214——单调递增子序列(二)——————【二分搜索加dp】
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长 ...
- nyoj_214_单调递增子序列(二)_201403182131
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长 ...
- nyoj 214 单调递增子序列(二) 【另类dp】
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 ,a2...,an}(0<n<=100000),找出单调递增最长子序列.并求出其长度 ...
- NYOJ-214 单调递增子序列(二) AC 分类: NYOJ 2014-01-31 08:06 233人阅读 评论(0) 收藏
#include<stdio.h> #include<string.h> int len, n, i, j; int d[100005], a[100005]; int bin ...
- NYOJ-214 单调递增子序列(二) TLE 分类: NYOJ 2014-01-28 22:57 171人阅读 评论(0) 收藏
#include<stdio.h> #include<stdlib.h> #define max(x,y) x>y?x:y #define MAXX 100005 int ...
- nyoj--214--单调递增子序列(二)(二分查找+LIS)
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序 ...
随机推荐
- 转:VB 6 在IE7以上版本机器上出现ieframe.dll 文件找不到问题
用VB打开已存工程时弹出一个对话框:file not found c:\windows\system32\IEFRAME.dll\1 continue loading project 看到这个 ...
- JDK核心JAVA源代码解析(1) - Object
想写这个系列非常久了,对自己也是个总结与提高.原来在学JAVA时.那些JAVA入门书籍会告诉你一些规律还有法则,可是用的时候我们一般非常难想起来,由于我们用的少而且不知道为什么.知其所以然方能印象深刻 ...
- 在OpenERP8.0中如何激活及时通讯功能im
How to activate chat (im) in v8 (trunk) I know its already answered that chat (im) is only available ...
- [Python]网络爬虫(九):百度贴吧的网络爬虫(v0.4)源码及解析
转自:http://blog.csdn.net/pleasecallmewhy/article/details/8934726 百度贴吧的爬虫制作和糗百的爬虫制作原理基本相同,都是通过查看源码扣出关键 ...
- This Handler class should be static or leaks might occur,Handler和Context使用的注意事项!
Android中.在使用到Handler的时候,假设按例如以下代码编写: private Handler handler; @Override public void onCreate(Bundle ...
- css 设置英文字母大小写转换(text-transform)
css 设置英文字母大小写转换 CreateTime--2018年5月25日07点16分 Author:Marydon 1.实现:通过text-transform实现 2.text-transfo ...
- css3中-moz、-ms、-webkit 是什么意思
-moz代表firefox浏览器私有属性-ms代表IE浏览器私有属性-webkit代表chrome.safari私有属性 私有属性例如:设置div圆角的大小 -webkit-border-radius ...
- 9、java中static详解
一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没 ...
- 如何在 CentOS 7 中安装、配置和安全加固 FTP 服务
步骤 1:安装 FTP 服务器 1. 安装 vsftpd 服务器很直接,只要在终端运行下面的命令. # yum install vsftpd 2. 安装完成后,服务先是被禁用的,因此我们需要手动启动, ...
- HDUOJ-------2844Coins
Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...