2024.11.17 近期练习
这大概是最后一篇近期练习了。
P8365 [LNOI2022] 吃
与 CF2023F 很相似,对于
所以考虑 dp,设
复杂度
但是,观察到:
假设选择两个
所以,只会选择一个
qoj # 7864. Random Tree Parking
考虑先找充要条件,可以转化为开进
那么 dp 状态就可以设出,设
由于是随机树所以
转移枚举当前位置有
qoj # 8049. Equal Sums
设
对于
这启示我们要构造一种转移的方式,使得要存的值域变小。
如果
前缀和优化,复杂度是
虽然我们减少了某些状态的存储,但是他们对答案都是没有贡献的(无需贡献)。
也就是每种方案都有唯一的方式确定。
qoj # 9479. And DNA
考虑拆位处理,从最低位开始。
如果该位
如果为
考虑有进位,相当于
所以 dp 即可,设
qoj # 9489. 0100 Insertion
考虑将序列翻转,变为 0010。
考虑用折线描述这个 0010,考虑
充要条件为:和为
因为一个 0010 和为
dp,设
qoj # 8542. Add One 2
神仙题了。方便起见将序列两端放一个极大的数
加法倒过来变为减法。差分,如果
反之同理。那么充要条件是对于
注意到,只需要
因为
所以二式可以相加,则
现在相当于
考虑建出大根笛卡尔树,只有把一个区间里的全部抬升才会减少上式,按照区间大小贪心即可。
NFLSPC #7 T2
考虑计算一种情形的最小分组个数。从小到大分组,考虑值域的前缀的答案。
如果
要想得到这个限制呢,你可以考虑检验一个分组个数
那么问题就变成了:后缀加
考虑拿出所有的
考虑扫描线枚举
P2779 [AHOI2016初中组] 黑白序列
显然的 dp,设
求出
那么转移的条件是
我错认为这是三维偏序,但事实上,因为偏序里存在
也就是说,当时间
于是我们只需要一个树状数组维护第一个条件即可。
ARC187C 1 Loop Bubble Sort
根据冒泡排序的性质,每次操作是将第一个数移动到第一个比它大的位置前,然后这个位置继续移动。
所以对于一个位置,如果其前面没有比它大的数,那么它就会往后移动;否则向前移动
也就是经典结论:设
注意到:对于一个固定的
所以直接设
但是需要保证填出来的
P6383 『MdOI R2』Resurrection
我躺尸。考虑将
所以我们决定每个点的出边连向哪里即可。
先考虑链的情况,然后得出充要条件是儿子连的点势必比父亲连的点小。这个非常关键。
然后树形 dp 即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】