什么是 问题
给出
逻辑关系
根据逻辑关系,我们就可以把每一组条件进行转化,设每一组条件中的第一个是
拆点建图
我们把每一个变量看作一个点,把
建图连有向边,例如对于条件
Tarjan 缩点
- 如果
和 在一个 内, 说明无解,因为不能同时取 1 和 0 ; - 否则一定存在可行解。
构造可行解
如果有
如果有
蕴含关系具有传递性,选择后者,冲突性更小。
Tarjan 缩点后我们得到的是拓扑排序
因为先访问的节点后出栈,后出栈的节点SCC编号就大
所以如果
所以如果
Comments NOTHING