算法复习——求最长不下降序列长度(dp算法)
题目:
题目背景
161114-练习-DAY1-AHSDFZ T2
题目描述
有 N 辆列车,标记为 1,2,3,…,N。它们按照一定的次序进站,站台共有 K 个轨道,轨道遵从先进先出的原则。列车进入站台内的轨道后可以等待任意时间后出站,且所有列车不可后退。现在要使出站的顺序变为 N,N-1,N-2,…,1,询问 K 的最小值是多少。
aaarticlea/png;base64,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" alt="" />
例如上图中进站的顺序为 1,3,2,4,8,6,9,5,7,则出站的顺序变为 9,8,7,6,5,4,3,2,1。
输入格式
输入共 2 行。
第 1 行包含 1 个正整数 N ,表示 N 辆列车。
第 2 行包含 N 个正整数,为 1 至 N 的一个排列,表示进站次序。
输出格式
输出共 1 行,包含 1 个整数,表示站台内轨道数 K 的最小值。
样例数据 1
样例数据 2
备注
【数据规模与约定】
对于 30% 的数据,N≤10;
对于 70% 的数据,N≤2000;
对于 100% 的数据,N≤100000。
题解:
其实就是求最长不下降序列的长度·····
设 dp[i] 表示处理到当前位置时,之前整数能够构成的长度为 i 的最长不下降序列中,第 i 位上数字最小的值(即系列中最后一位最小),dp[i]用二分查找的方法确定。
按顺序从左到右,计算每个数字作为最长不下降序列最后一个数字,就能构成的最长序列的长度。
时间复杂度:O(N*long2n)
心得:
先开始根据样例模拟的时候可以得出这几组数:1 32 4 865 97····然后分析每组数据的开头的数其实是很好分析的··
代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
const int N=;
int dp[N],ans=,n,num;
int main()
{
//freopen("lic.in","r",stdin);
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&num);
int left=,right=ans;
while(left<=right)
{
int mid=(left+right)/;
if(num<=dp[mid])
right=mid-;
else
left=mid+;
}
if(left>ans) ans++;
dp[left]=num;
}
cout<<ans<<endl;
return ;
}
算法复习——求最长不下降序列长度(dp算法)的更多相关文章
- JDOJ 1929: 求最长不下降序列长度
JDOJ 1929: 求最长不下降序列长度 JDOJ传送门 Description 设有一个正整数的序列:b1,b2,-,bn,对于下标i1<i2<-<im,若有bi1≤bi2≤-≤ ...
- 问题 B: 【例9.3】求最长不下降序列(基础dp)
问题 B: [例9.3]求最长不下降序列 时间限制: 1 Sec 内存限制: 128 MB提交: 318 解决: 118[提交][状态][讨论版][命题人:quanxing] 题目描述 设有由n( ...
- manacher算法_求最长回文子串长度
很好的总结,转自: http://blog.csdn.net/dyx404514/article/details/42061017 总结为:两大情况,三小情况. 两大情况:I. i <= p 1 ...
- manacher算法学习(求最长回文子串长度)
Manacher总结 我的代码 学习:yyb luogu题目模板 xzy的模板 #include<iostream> #include<cstdlib> #include< ...
- hdu 3308 线段树,单点更新 求最长连续上升序列长度
LCIS Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 【Manacher算法】求最长回文串的优秀算法
先贴一下代码~ //by 减维 #include<cstdio> #include<iostream> #include<cstring> #include< ...
- 算法进阶 (LIS变形) 固定长度截取求最长不下降子序列【动态规划】【树状数组】
先学习下LIS最长上升子序列 看了大佬的文章OTZ:最长上升子序列 (LIS) 详解+例题模板 (全),其中包含普通O(n)算法*和以LIS长度及末尾元素成立数组的普通O(nlogn)算法,当然还 ...
- JDOJ 1946 求最长不下降子序列个数
Description 设有一个整数的序列:b1,b2,…,bn,对于下标i1<i2<…<im,若有bi1≤bi2≤…≤bim 则称存在一个长度为m的不下降序列. 现在有n个数,请你 ...
- [BZOJ1852] [MexicoOI06]最长不下降序列
[BZOJ1852] [MexicoOI06]最长不下降序列 额我也不知道是不是水过去的...和网上的另一篇题解对拍过了,但是拍不出来... 经过和神仙的讨论基本可以确定是对的了 考虑如下贪心 (我将 ...
随机推荐
- 修改完linux bashrc文件之后,如何不重启系统使其生效
修改完后,输入如下命令即可 ##@##:~/ source ~/.bashrc 之后bashrc文件就可以使用! 注: 使用ssh登陆shell的时候,系统不会自动调用.bashrc文件, 只是 ...
- Exception in thread "main" java.lang.NoSuchMethodError: org.apache.http.entity.ContentType.withCharset(Ljava/lang/String;)Lorg/apache/http/entity/ContentType;
解决方案是:第一点先检查一下使用的包是否冲突,是否是版本号一致.第二点是增加一个包 忙活了好久才解决了这个异常,小小的激动一下啊啊
- 关于bootstrap栅格系统的五等分以及八等分代码
众所周知,bootstrap的栅格系统是基于十二等分的,今天拿到设计的设计稿一看,发现一个图片list上只有8张图片,然后上网查资料,发现只能自己写css代码实现,故写博客记录代码. 以下是八等分的代 ...
- WINDOWS-API:取得系统语言种类-GetOEMCP
GetOEMCP VB声明 Declare Function GetOEMCP Lib "kernel32" Alias "GetOEMCP" () As Lo ...
- Oracle旗下软件官网下载速度过慢解决办法
平常下载Oracle旗下软件官网的产品资源,会发现速度很慢,如下载JDK和mysql时, 这样很浪费我们的时间 解决办法: 复制自己需要下载的资源链接 使用迅雷下载该资源 速度均很快 如下载Mysql ...
- shell脚本,awk常见初始化变量的题目。
文件 内容如下 clone=line1gb=line1gi=line1lib=line1gb=line2gi=line2lib=line2clone=line3gb=line3gi=line3lib= ...
- Emmet:HTML/CSS代码快速编写神器--20150422
Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...
- Bzoj 1085: [SCOI2005]骑士精神 (dfs)
Bzoj 1085: [SCOI2005]骑士精神 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1085 dfs + 剪枝. 剪枝方法: ...
- HDU-1455-木棒
这题的话,我们,定义一个结构体,然后把木棒从大到小排序. 这些木棒如果是由多根等长木棒组成的,那目标长度一定大于等于其中最长的木棒长度,所这就是我们搜索的下限. 上限就是所有的木棒组成了一根木棒,就是 ...
- DOM事件模型浅析
1.何为DOM DOM是"Document Object Model"的缩写,中文译为"文档对象模型".它是一种跨平台.跨语言的编程接口,将HTML,XHTML ...