专栏文章
题解:AT_arc197_d [ARC197D] Ancestor Relation
AT_arc197_d题解参与者 2已保存评论 1
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mipds2mu
- 此快照首次捕获于
- 2025/12/03 10:21 3 个月前
- 此快照最后确认于
- 2025/12/03 10:21 3 个月前
记 ,其中 为当前子树大小。每次找到除根外未被打上标记且 最大的 ,将其设为根的一个孩子。记 , 的具体含义为 所在的极大的链的链长。我们可以发现若 能成为根的孩子,则任意的满足 的 都能将 替掉,所以答案要乘上 。将与 有祖先后代关系的点 打上标记,如果 已经被打上标记或者 ,则说明答案为 ,因为一个点不可能有两个不存在祖先后代关系的祖先。然后递归进以 为根的子树即可。
还有一种更简洁的做法。我们枚举 和 ,若 ,则将 所在的点集 与 所在的点集合并,若 且 和 之间不存在被包含关系,则答案为 。最后答案即为每个点所在的集合大小的阶乘之积,原因同上文。将 由数组替换成 bitset 可以把时间复杂度从 降为 。
相关推荐
评论
共 1 条评论,欢迎与作者交流。
正在加载评论...