nyoj 214-单调递增子序列(二) (演算法,PS:普通的动态规划要超时)
214-单调递增子序列(二)
内存限制:64MB
时间限制:1000ms
Special Judge: No
accepted:11
submit:35
题目描述:
给定一整型数列{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 分析:
1、如果给的串本身是升序的,就直接加入进来temp[]串中
2、否则的话我们要找到第一个大于等于该值的位置,并改变该位置的值(使最终组成的temp[]串ASCⅡ码之和最小) 核心代码:
while(m --)
{
scanf("%d", &v);
if(temp[cnt] < v)
{
temp[++cnt] = v;
continue;
}
for(int i = ; i <= cnt; ++ i)
{
if(temp[i] >= v)
{
temp[i] = v;
break;
}
}
}
C/C++代码实现(AC):
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <stack>
#include <map>
#include <queue>
#include <set> using namespace std;
const int MAXN = ; int main()
{ int t, A[MAXN], temp[MAXN], cnt;
while(~scanf("%d", &t))
{
cnt = ;
memset(A, , sizeof(A));
memset(temp, , sizeof(temp));
scanf("%d", &A[]);
temp[cnt] = A[];
for(int i = ; i < t; ++ i)
{
scanf("%d", &A[i]);
if(temp[cnt] < A[i])
{
temp[++cnt] = A[i];
continue;
}
for(int j = ; j <= cnt; ++ j)
if(A[i] <= temp[j])
{
temp[j] = A[i];
break;
} }
printf("%d\n", cnt + );
}
return ;
}
C/C++代码(TLE)<动态规划>:
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <stack>
#include <map>
#include <queue>
#include <set> using namespace std;
const int MAXN = ; int main()
{ int t, A[MAXN], dp[MAXN], cnt;
while(~scanf("%d", &t))
{
cnt = ;
memset(A, , sizeof(A));
memset(dp, , sizeof(dp));
for(int i = ; i < t; ++ i)
{
scanf("%d", &A[i]);
dp[i] = ;
for(int j = ; j < i; ++ j)
if(A[i] > A[j])
dp[i] = max(dp[i], dp[j] + );
cnt = max(cnt, dp[i]);
}
printf("%d\n", cnt);
}
return ;
}
nyoj 214-单调递增子序列(二) (演算法,PS:普通的动态规划要超时)的更多相关文章
- 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 单调递增子序列(二) 【另类dp】
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描写叙述 ,a2...,an}(0<n<=100000),找出单调递增最长子序列.并求出其长度 ...
- 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),找出单调递增最长 ...
- ny214 单调递增子序列(二) 动态规划
单调递增子序列(二) 时间限制: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 单调递增子序列(二) 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 ...
随机推荐
- [Luogu2458][SDOI2006]保安站岗
题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序. 已知整个地下超市的所有通道呈一棵树的形状:某些通道之间可以互 ...
- Intel Ivy Bridge Microarchitecture Events
This is a list of all Intel Ivy Bridge Microarchitecture performance counter event types. Please see ...
- spark上 spark-shell和java -jar访问hdfs路径问题
部署spark集群 使用spark包 spark-1.0.2-bin-hadoop2.tgz 在spark-shell和java -jar访问hadoop hdfs上的文件写法是有区别的 在spark ...
- SpringBoot生命周期管理之停掉应用服务几种方法
前言 在生产环境下管理Spring Boot应用的生命周期非常重要.Spring容器通过ApplicationContext处理应用服务的所有的beans的创建.初始化.销毁. 本文着重于生命周期中的 ...
- PHP使用RabbitMQ消息队列
1.安装amqp拓展 安装流程 2.下载工具包 php-amqplib composer require php-amqplib/php-amqplib 3.代码操作如下 [消费消息] < ...
- 实现基于netty的web框架,了解一下
上一篇写了,基于netty实现的rpc的微框架,其中详细介绍netty的原理及组件,这篇就不过多介绍 这篇实现基于netty的web框架,你说netty强不强,文中有不对的地方,欢迎大牛指正 先普及几 ...
- Spring(五)Spring缓存机制与Redis的结合
一.Redis和数据库的结合 使用Redis可以优化性能,但是存在Redis的数据和数据库同步的问题. 例如,T1时刻以将 key1 保存数据到 Redis,T2时刻刷新进入数据库,但是T3时刻发生了 ...
- Emacs 学习之旅
**Emacs 的使用过程,就像是程序员的生涯一样--路漫漫其修远兮,吾将上下而求索.** ## 万物始于 Emacs 最早知道 _Emacs_ 是从编辑器的圣战开始的,即编辑器之神--Vi,和神的编 ...
- HyperLPR车牌识别
简介 本文基于HyperLPR进行修改,完整代码参考https://github.com/Liuyubao/PlateRecognition. HyperLPR是一个使用深度学习针对对中文车牌识别的实 ...
- leetcode算法小题(3)
问题描述: 判断一个数是否为回文数 class Solution { public boolean isPalindrome(int x) { if(x<0) ...