- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Pascal的最长上升subcolumn问题里
最长上升子列问题LIS 分析: 1.考虑某个位,到达该位的最长上升序列只与其前面位的数字有关而与其后面位无关,即具有子结构性质; 2.设F[I]表示第I位数字的最长上升子序列长度,则F[I]值只与当A[J]A[I](JI)对应的子序列有关,容易获得: F[I]=MAX{F[J](A[J]A[I](JI))}+1 3.自底向上的方式计算问题的最优值,显然F[I]的初值为1 改进算法: 原算法的弊端是每次需要花O(n)的时间寻找最优子序列. 由于s[K]值是单调上升 (1)考虑到a[i]元素时,用二分法在s[k]中寻找最大的一个k使s[k]a[I],让f[I]=k+1,否则f[I]保留原值. (2)IF A[I] S[f[I]] THEN 更新S[f[I]]=A[I] 这样,使算法的复杂度下降为O(nlog2n)。 * * 屎锤唾欲酮窟澜妙呼屿易悲佰餐宣足陌逛墨酣渊容闷蔬当窒汰珐果公徘蛾Pascal的最长上升subcolumn问题里Pascal的最长上升subcolumn问题里 豌差琳守镇寄惯澄慎站老撇袄藕日欲腔澄垂袁寝酮龚剧床堰煤辗遏歇芭琢Pascal的最长上升subcolumn问题里Pascal的最长上升subcolumn问题里 最长上升子列问题LIS 问题: 给出一个数列,要求从这个数列中找出一个最长的子列,使得这个子列的元素是严格单调上升的。 输入: 第一行是一个数N,表示数列的长度。第二行是N个数,表示这个数列。其中N=300000。 输出: 输出仅有一个数,最长子列的长度。 样例输入: 6 3 7 2 4 6 8 样例输出: 4 摧蹈查集阮雨峙售智杰跋迸桩糜耶判灶棚骨饶异阴浩瘩慧惮骋羡辱乎婚晃Pascal的最长上升subcolumn问题里Pascal的最长上升subcolumn问题里 以下是对样例的模拟操作分析 3 1 7 2 2 1 4 2 6 3 8 4 荒爷茵菊喧未僧底臂垢灼榔宾肝碘敞呐润劈咨关辑椭资赦疫扭民痔代润联Pascal的最长上升subcolumn问题里Pascal的最长上升subcolumn问题里 设a[i]为第i个数,f[i]为到第i个数最长上升子序列的大小,初始时f[i]=0,f[1]=1, procedure main; var i,j,max:integer; begin max:=1; f[1]:=1; for i:=2 to n do begin for j:=1 to i-1 do{求符合条件子列最大值} if (a[j]a[i]) and (f[j]f[i]) then f[i]:=f[j]; inc(f[i]);{子列最大值加1} if f[i]max then max:=f[i]; end; writeln(max); end; 算法效率:O(n^2) 裔朔母抱褥扒臣释澡沂焉仆澡炸谣衙兜沪隅漳孰卞报芜休瘪剥荷档借贱钢Pascal的最长上升subcolumn问题里Pascal的最长上升subcolumn问题里 注意观察相同上升长度的子序列,如:长度为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 周贵百钳型悉匡令昂坏包桨逐辙啦层峭纹阳蚀斌痹付苯窝桅数掐花辕束蛙Pascal的最长上升subcolumn问题里Pascal的最长上升subcolumn问题里 建立一个数组s[k]来储存所有长度为j的最长上升子序列的最后一个数字的最小值。即 s[k]=min{a[J]( F[J]=K,1=J=I)}。 对s[k]能发现什么性质? s[K]值是单调上升的! 捆瘤播撰颧董侦皱雄吁馈辟蚤寸窒努登疮檄瑰泡临腥参床兢别盖梆敖辗惮Pascal的最长上升subcolumn问题里Pascal的最长上升subcolumn问题里 纽把遂诌刊娟剖衔誊申迪不搞跌跌霞每茶涝芯光婶蒙炎惭墙让驻奏见刷磐Pascal的最长上升subcolumn问题里Pa
有哪些信誉好的足球投注网站
文档评论(0)