【题解】ARC125 C - LIS to Original Sequence
题意:构造一个排列 p p p ,使得 p p p 的其中一个 LIS 为给定的序列 a a a 。保证 a a a 单调递增。
solution:
考点:数学归纳法。
我写的伪贪心 hhh。
如果 k=1 ,那么只有唯一的构造方案 n, n-1, …, 1
考虑从左往右构造,保证字典序最小。设当前全局最小值为 Min 。
- 如果 a[j]=Min ,那么直接赋 c[i]=a[j++]
- 否则的话,赋 c[i]=a[j++],c[i+1]=Min (注意两个一定要一起赋,待会讲为什么)
首先可以知道一定不存在比这种方案更优的答案。我们只需要证明满足条件即可。可以用递归证明,每次的 LIS 长度一定是上一层 + 1 。所以到了 i=1 一定满足 LIS 长度为 k 。
顺带提一句,这个构造方案不是唯一的。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530263.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」