专栏文章
题解:AT_arc101_c [ARC101E] Ribbons on Tree
AT_arc101_c题解参与者 3已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @miqqnj8c
- 此快照首次捕获于
- 2025/12/04 09:09 3 个月前
- 此快照最后确认于
- 2025/12/04 09:09 3 个月前
直接进行 dp 是简单的,但是复杂度达到了不可接受的 。具体就是设 表示以 为根的子树内,还剩 个点没有匹配的方案数。子树之间合并的转移过于复杂,貌似不可以直接优化。
考虑容斥,强制钦定其中若干条边断开(即这条边一定不染色,从而把整棵树分成若干个联通块),其它边没有限制的匹配数。
首先思考如何在知道断掉边的集合时求出对应的方案数。设 表示联通块大小为 时, 块内点两两匹配的方案数,那么可以得出 简单的递推形式 (需要保证 为偶数)。所以如果固定了断掉的边的集合 ,分成的 个联通块大小集合是 ,那么方案数就是 ,还可以把 乘进去方便后面的计算。
解决了上面的问题后,就把原问题转化为:一个大小为 的联通块权值为 ,现在要把一棵树划分成若干个联通块,定义一种划分的价值为所有联通块的权值的乘积。求所有划分的价值之和。
这个问题可以用树形 dp 解决。设 表示以 为根的子树内,与 联通的联通块大小为 的价值之和(不把当前与 的联通块算在内,否则难以转移)。
转移是显然的。
- (断掉连向父亲的边。)
- (不断,把两个联通块合并。)
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...