【LOJ6036】 「雅礼集训 2017 Day4」编码

传送门

LOJ

Solution

因为?只有两种可能为0,1,所以就把这两个串搞出来。
那么现在?0?1不能并存,前缀不能并存,所以就是一个(2-SAT),现在问题在于这个东西可能会有很多条边,所以考虑用Trie树优化这个过程。
显然根节点到这个点的路径上的所有字符串关键点都是它的前缀,那么考虑把每一个串用一个点挂到上面去,那么就还是可以跑(2-SAT),所以就可以做出来了。

代码实现

代码戳这里

原文地址:https://www.cnblogs.com/mleautomaton/p/10618283.html