专栏文章
题解:CF599E Sandy and Nuts
CF599E题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqzvbv6
- 此快照首次捕获于
- 2025/12/04 13:27 3 个月前
- 此快照最后确认于
- 2025/12/04 13:27 3 个月前
,显然状压。
设 表示以 为根,这个子树的点集为 的方案数。显然有转移:。(这里的减号是差集,在实操的时候要异或)
这时候我们发现会算重。具体而言,我们会在按照不同的顺序枚举同一个子树。因此,考虑限定枚举顺序。随意取出一个异于根节点的点,钦定 必须包含此节点就能解决算重的问题。
此时,我们需考虑转移的限制。
- 的限制
- 如果对于一条限制 ,满足 且 ,显然不合法。
- 如果对于一条限制 ,满足 且 ,显然不合法。
- 边的限制
- 如果有大于一条边 ,满足 ,显然不合法。
- 如果有一条边 ,满足 ,显然不合法。
把不合法的状态剪去即可。
代码上可用记搜实现,具体地,想要获得 要枚举 的子集。有经典套路可做到 而不是 。
还要注意一点,在搜索时先把 的状态从 里面扣掉,这样就能避免一坨边界讨论。往下递归的时候把 的状态再加进去就行了。
于是做完了,时间复杂度 。实际上由于无用状态极多,三秒时限完全卡不满。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...