专栏文章
【魔怔】拼接。记忆。破碎。
AT_abc381_f题解参与者 33已保存评论 35
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 35 条
- 当前快照
- 1 份
- 快照标识符
- @mir14lo9
- 此快照首次捕获于
- 2025/12/04 14:02 3 个月前
- 此快照最后确认于
- 2025/12/04 14:02 3 个月前
你是一名因水平原因而遗憾退役的 OIer。退役之际,你正努力寻找和拼接着你在 OI 生涯中的回忆。
按顺序,你有 片关于 OI 的记忆,每一片用一个数字 代表,数字相同代表记忆内容相近。你想把其中最具有代表性的记忆拼接在一起,可以不在原序列中连续。具体地,你要求出一个 的可不连续的子序列,其中两片相近的记忆()需要在子序列中连续。同时,你不想让过多重复的记忆进入,所以每一片记忆的内容只会出现 次或 次。请求出你所获得的回忆子序列的最长长度。
你马上想到,可以使用状压求出分别是否选择了 种内容。记 为当前状态的二进制值,从低到高第 位为 代表已经被选择,为 代表未被选择。
你考虑从小到大枚举 ,并记录能达到这种状态的最小的下标 (如果无法达到,)。你很显然地发现,对于一个状态 ,通过枚举往后延展回忆的内容编号()来进行转移即可高效地完成。
具体地,设当前状态为 (),被延展的回忆内容编号为 ( 开始时从低到高第 位不能为 ),则新状态的编号为 。 能够向 转移的充要条件,即是在 之后,仍然有两个下标 满足 ,且 ,则此时即可让 。
你也发现暴力地求出 是低效的,于是你预处理了一个 ,代表从下标 开始下一个值为 的下标,于是解决了这道题。
你的代码。
你成功地把你 OI 生涯中最具代表性的事物留在了脑海中,可你却仍感空虚。仅用至多 片回忆来代表这近乎数万的记忆,未免有所片面。因为,你的 OI 生涯里有太多美好。
回望这些回忆,你忽而感到它们在破碎。正因缺少了什么,或是前因后果,或是平凡琐事,你感觉它们都失去了意义。越往深入去想,你的自我怀疑越深,情绪也越崩溃。可于千钧一发之际,你似乎找到了一切的答案,它能够串联起你的整个 OI 生涯,不遗留,也无遗憾。
这就是你热爱 OI 的心。
相关推荐
评论
共 35 条评论,欢迎与作者交流。
正在加载评论...