2-sat建图以及刷题记录~~

A[x]

NOT A[x]

A[x] AND A[y]

A[x] AND NOT A[y]

A[x] OR A[y]

A[x] OR NOT A[y]

NOT (A[x] AND A[y])

NOT (A[x] OR A[y])

A[x] XOR A[y]

NOT (A[x] XOR A[y])

A[x] XOR NOT A[y] 
建立有向图。

若图中存在有向边i->j,则表示若选了i必须选j

默认下面的x  y都为也就是选择~~

And 结果为1:建边 ~x->x, ~y->y (两个数都为1)  

And 结果为0:建边 y->~x , x->~y(两个数至少有一个为0)

OR  结果为1:建边 ~x->y , ~y->x(两个数至少有一个为1)

OR  结果为0:建边 x->~x , y->~y(两个数都为0)

XOR 结果为1:建边 x->~y , ~x->y , ~y->x , y -> ~x (两个数一个为0,一个为1)

XOR 结果为0:建边 x->y , ~x->~y , y->x, ~y->~x(两个数同为1或者同为0)

建图主要是参照上述。不过有一些得注意。


建图的一般准则是:

逆向建图:由于2-SAT某一点要么选1要么选0.....那么每次找出有矛盾的两点ab,进行建图,a->b^1以及b->a^1

这样子就确保了一定选择某一个点以及可以更方便导出矛盾~~~

可参考~~hdu4115

正向建图:任意两点的关系有a-b,a-b^1,a^1-b,a^1-b^1....然后去掉矛盾的关系后,选择那些“只能”这么搭配的关系进行建边。

如去除矛盾关系之后有:a-b,a^1-b,a^1-b^1.这三种关系。已知 a^1b与对方谁配对都行。但是a只能与b配对、b^1只能与a^1配对。所以建立两条边:a->b,b^1->a^1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值