Loading

LG6965 NEERC2016 Binary Code(Trie,2-SAT)

LG6965 NEERC2016 Binary Code

\(N\)01 串每个串至多一位为 ? 问能否(要构造)把 ? 替换成 01 使得没有一个串是别的串的前缀。

CODE

把每个 ? 替换成 01 插入 Trie,然后如果你选了一个 Trie 上的串,那么所有子树里的、祖先路径上的、该点上的其他串的反串(即 0110,没有 ? 就不变)都得选。前缀和建图(如果是一个点上多个串,就把它们当做一条链处理)跑 2-SAT 即可。时间复杂度 \(\Theta(N)\)

错因:2-SAT 没有考虑反向边(之前打模拟赛的时候模拟费用流也是如此!),大意了。

posted @ 2022-10-21 09:43  Pizza1123  阅读(51)  评论(0)    收藏  举报