LOJ #2305. 「NOI2017」游戏
题目叙述
一共有 \(n\) 个位置,每个位置要填上ABC三种字母中的一个。有要求:第 \(i\) 个位置填 \(h_i\)那么第 \(j\) 个位置就必须填 \(h_j\)。另外,每个位置有最多一个字母不能填。全都能填的位置数量不超过 8 个。给出构造或输出无解。
题解
这其实是个 3-sat 问题。考虑通过枚举转化为 2-sat 问题。枚举那 8 个位置每个位置哪个不能填,跑一边 2-sat 即可。
复杂度 \(\mathcal O(2^8n)\)
总结
- 转化为能够解决的问题