专栏文章

题解:CF585D Lizard Era: Beginning

CF585D题解参与者 4已保存评论 3

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
3 条
当前快照
1 份
快照标识符
@miotr37c
此快照首次捕获于
2025/12/03 01:00
3 个月前
此快照最后确认于
2025/12/03 01:00
3 个月前
查看原文
我们发现每个数有三种状态,直接搜是 3n3^n 级别的,不能接受。但是我们发现 是可以接受的,因此我们尝试折半搜索。
我们先枚举前⼀半的状态,再枚举后⼀半的状态。 枚举时可以⽤三进制状压。考虑合并时如何处理三组数之和相等的限制。
我们在记录状态时不妨同时记录上 BAB-ACBC-B 的值,这样如果后⼀半的 BAB-A 和前⼀半的 BAB-A 和为 00,后⼀半的 CBC-B 与前⼀半的 CBC-B 和也为 00,那么这两个状态合并之后就是相等的。因此搜索前⼀半时我们只需要⽤⼀个 map 存储下来前⼀半的 (BA,CB)(B-A,C-B) 以及 其对应的 AA 的值,在搜索后⼀半时直接在 map ⾥查找 (AB,BC)(A-B,B-C) 即可。

评论

3 条评论,欢迎与作者交流。

正在加载评论...