专栏文章
ARC121F
AT_arc121_f题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipdahuz
- 此快照首次捕获于
- 2025/12/03 10:07 3 个月前
- 此快照最后确认于
- 2025/12/03 10:07 3 个月前
解法 :
考虑什么样的树合法。
断言:一棵树合法当且仅当在断掉所有 边后,至少有一个联通块没有 。证明:充分性:直接把全 联通块缩在一起,并且操作除该联通块邻接 边外的所有边,然后再操作邻接边即可。必要性:显然如果没有 边,不论怎么操作,联通块内都至少有一个 ,并且最后的运算结果为 。否则考虑第一次对 边操作时,由于边两端的联通块都至少有一个 ,而 至多会减少一个 ,所以操作后的联通块依旧至少有一个 ,转化为联通块个数 的情况。
于是进行树形 DP 即可。
具体地,考虑容斥。令 为在 子树内, 为 子树内没有出过 子树内出过 的方案数。
当给 合并一个儿子时,如果 为 ,直接把贡献累加到 上,否则除非当前状态为 并且边为 并且儿子的对应状态为 ,此时转移到 ,否则原样转移即可。
时间复杂度 。
做法二:
考虑“剥叶子”状物。具体地,我们考虑当一个叶子以及其父子边的情况。
如果叶子为 或者 ,那么其对整个局势没有影响,可以直接剥掉。
如果为 ,那么直接赢了。
否则当对其进行操作的时候,无论何时,父亲会变成 。最开始进行操作即可,因为如果父亲是 ,那么其所合并形成的最终节点一定为 ,最开始影响能小点。
于是可以 DP:令 为 为 或者已经出现 的方案数。时间复杂度 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...