版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、最长上升子列问题LIS,最长上升子列问题LIS,问题: 给出一个数列,要求从这个数列中找出一个最长的子列,使得这个子列的元素是严格单调上升的。 输入: 第一行是一个数N,表示数列的长度。第二行是N个数,表示这个数列。其中N=300000。 输出: 输出仅有一个数,最长子列的长度。 样例输入: 6 3 7 2 4 6 8 样例输出: 4,分析:,1.考虑某个位,到达该位的最长上升序列只与其前面位的数字有关而与其后面位无关,即具有子结构性质; 2.设FI表示第I位数字的最长上升子序列长度,则FI值只与当AJAI(JI)对应的子序列有关,容易获得: FI=MAXFJ(AJAI(JI)+1 3.自底向
2、上的方式计算问题的最优值,显然FI的初值为1,以下是对样例的模拟操作分析,设ai为第i个数,fi为到第i个数最长上升子序列的大小,初始时fi=0,f1=1,,procedure main; var i,j,max:integer; begin max:=1; f1:=1; for i:=2 to n do begin for j:=1 to i-1 do求符合条件子列最大值 if (ajfi) then fi:=fj; inc(fi);子列最大值加1 if fimax then max:=fi; end; writeln(max); end;,算法效率:O(n2),注意观察相同上升长度的子序列
3、,如:长度为4的序列:3 5 6 8,3 4 5 7,3 4 5 6,影响后面最长子序列的是3 4 5 6序列。 证明: 因为6是长度为4序列中尾数最小的序列,如果一个数能加入长度为4的其它序列中也必定能加入该序列中。 故相同长度的子序列的有效信息是其序列中尾数最小的数。因此我们如果增加一个数组记录下每种序列结尾最小值,可不可以降低算法的时间复杂度呢?,序列 3 7 5 4 6 8 5 7 6 7 上升长度 1 2 2 2 3 4 3 4 4 5,建立一个数组sk来储存所有长度为j的最长上升子序列的最后一个数字的最小值。即,sk=minaJ( FJ=K,1=J=I)。,对sk能发现什么性质?,
4、sK值是单调上升的!,改进算法: 原算法的弊端是每次需要花O(n)的时间寻找最优子序列. 由于sK值是单调上升 (1)考虑到ai元素时,用二分法在sk中寻找最大的一个k使skaI,让fI=k+1,否则fI保留原值. (2)IF AI SfI THEN 更新SfI=AI 这样,使算法的复杂度下降为O(nlog2n)。,分步变化示例如下:,(1),(2),(3),(4),(5),(6),program LIS; var n,i,max,k,e:integer;n数据长度,e记录已知序列总数,max最优值 num,dp,maxn:array 1.300000 of integer;num记录数据,d
5、p记录序列长度,maxn记录每种序列结尾最小值 function find(x:integer):integer;二分查找,寻找当前值所在的区间 var left,right,mid:integer; begin left:=1;right:=e; mid:=(left+right) div 2; while leftx then right:=mid-1 else left:=mid+1; mid:=(left+right) div 2; end; find:=mid-1; end;,begin assign(input,lis.in); reset(input); assign(output,lis.out); rewrite(output); readln(n); for i:=1 to n do maxni:=30000; for i:=1 to n do read(numi); dp1:=1; maxn1:=num1; e:=1; for i:=2 to n do 动态规划过程 begin k:=find(numi)+1; if k+1dpi then dpi:=k+1; if k+1e then e:=k+1; if numimaxndpi then maxndpi:=num
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 猩红热恢复期的护理注意事项
- 安防系统维保评价手册
- 产品经理市场分析与用户需求挖掘实践手册
- 速度力量训练方法
- 表演课情绪训练
- 重症肠内营养护理
- 安徽省宿州砀山县联考2026届中考五模历史试题含解析
- 2025年中国能源建设集团南方建设投资有限公司公开招聘笔试历年参考题库附带答案详解
- 2025年中国矿业大学资源与地球科学学院江苏省能源国际有限公司工程技术人员招聘笔试历年参考题库附带答案详解
- 2025年中国电信江西公司春季校园招聘笔试历年参考题库附带答案详解
- 2026年宝鸡市辛家山林业局、宝鸡市马头滩林业局招聘(12人)考试参考题库及答案解析
- 超声科产前筛查异常应急预案演练脚本
- 2026年非遗保护中心招聘考试面试题及参考答案
- 6.3 社会主义市场经济体制(教学设计) 2025-2026学年统编版道德与法治八年级下册
- 2026年及未来5年市场数据中国电化学工作站行业发展监测及投资战略咨询报告
- 江苏省南京市2025届中考化学试卷(含答案)
- DB35-T 2262-2025 海峡两岸共通 美人茶加工技术规程
- DB5134-T 14-2021 美丽乡村 农村人居环境整治规范
- 《医学免疫学》 课件 第1-7章 免疫学概述- 细胞因子
- 大学校医笔试试题及答案
- 第11课《防恐防暴有办法》课件
评论
0/150
提交评论