专栏文章

ARC121F

AT_arc121_f题解参与者 1已保存评论 0

文章操作

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

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

评论

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

正在加载评论...