A
- tag:签到题
- 注意到定住一个值后,左边的值全都得改,右边的值也全都得改
- 注意到,定住的越多,需要改的就越少
- 所以开桶记一下哪个值最多就行
B
- tag:诈骗诈骗签到题
- 读完题容易产生 naive 结论:当且仅当错位的两个地方相邻可以修复,其余情况全部无法修复
- 感觉真不了一点,于是找三个数 ABC 来手模一下
- 发现这个结论好像是真的,交一发
- 过了,那就真了吧
C
- tag:究极神迷构造题
- 注意到如果是偶数直接 11 22 33 44 55 66 就好了
- 接下来讨论奇数
- 注意如果是奇数,必然至少存在一个数出现了奇数次
- 所以必然存在三个点 使得
- 注意到最小的满足 的正整数三元组是
- 考虑如何构造:
- 1 10 26 放一个数
- 23 27 放一个数
- 24 25 放一个数
- 其余地方两两一组放即可
- 显然小于 27 的奇数无解
D
Sol 1 并查集
- 首先注意到正着跳和反着跳是互逆的,所以我们可以看成只有正或只有反,然后连无向边
- 考虑并查集
- 显然,对于每个 都需要向它前面的比它高的点连边,时间复杂度 ,不可接受
- 考虑优化
- 用一个 pq 维护 之前比 还高的点,键是高度,连一个 pop 一个,并查集同时维护最高高度,离开 时将 和 能到达的最高高度压入 pq 即可
- 显然对于每个 ,最多进出 pq 一次,所以复杂度
Sol 2 Clever 做法
- 注意到从一个点开始可能先往后再往前,顺序处理比较麻烦。
- 我们考虑最开始可以较为简单求出答案的点,容易发现 最大的点往后的点肯定跳到这个点上。
- 于是每次求出答案未确定的点中 最大的点。如果它能跳到 且 的答案已求出,答案 (我们是从大往小枚举,先求出的答案肯定大)。 再让它后面所有没求出答案的 答案为 。
- 非常优美,时间复杂度
E
- tag:好题
- 根据直觉考虑树形 dp
- 表示子树 可满足同构所需最小完美二叉树深度
- 考虑转移:
- 考虑没有儿子:由于这道题的深度是 0-index,直接返回即可
- 考虑只有一个儿子:
- 考虑有两个儿子:
- 考虑有好多好多儿子:显然必须逐个合并,考虑合并顺序
- 答案即为
posted @
2024-11-24 08:14
yeyou26
阅读(
18)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效