[NOI2017]游戏(2-SAT)
观察到d<=8,考虑对每个x用a/b/c代替,枚举的复杂度\(O(3^n),O_{\max}=3561\)
此时就基本上变成一个裸2-sat了,注意一些小细节
为什么是2-Sat了,因为比如a,b,c三种车子你限制不能用b了那a,c就相当于2-Sat中的真假两种状态了,这时我们暂且称b=\(\neg\)c,c=\(\neg\)b
那么对于每一条要求i a j b
- 如果
i a不行,continue - 如果
j b不行,那相当于你一旦i a了就无解了,就是i不能a,我们巧妙地从(i,a)连到\((i,\neg a)\),也就是一选(i,a)就一发不可收拾了 - 都可以的情况下,连\((i,a)\to (j,b)\),\((j,\neg b)\to (i,\neg a)\),不赘述
求一遍标准2-sat就完了
总复杂度在一般情况下远\(<O(3^n n)\),Omax≈3e8
注:其实x只要枚举填a还是b就可以了,因为不适合A就是适合赛车BC,不适合B就是适合赛车AC,这样情况就都覆盖了。复杂度降到 \(O(2^nn)\)

浙公网安备 33010602011771号