首页 > 其他分享 >2-sat小记

2-sat小记

时间:2024-11-10 21:00:00浏览次数:1  
标签:缩点 xor 建图 蕴含 集合 sat 小记

记得好像写了,但找了一下发现没写,于是写一下

2-sat

用于求 p→q 的蕴含关系集合的一组解(或判断无解)

流程:先构造蕴含关系集合,谁成立/不成立时另一个必须怎么样

对每个命题p建p和非p(p'),每个蕴含关系p→q连边 (p,q), (q',p')一定要有逆否的反向边

然后
① 跑tarjan缩点,若存在p和p'在同一强连通分量就无解
② 否则有解,对缩点后的图求拓扑序,在p和p'中选择拓扑序较大(较后)的


一个重要的认识是,2-sat可以解决任何蕴含关系集合,不只是and or xor之类的

常见建图(考虑用什么约束条件把想要的效果准确表示出来)
i必选:i'→i
i and j=0:i→j',j→i'
i or j=1:i'→j,j→i'
i xor j=0:i→j,i'→j',j→i,j'→i'
i xor j=1:i→j',i'→j,j→i',j'→i
i→j:i→j,j'→i'

(无论怎样建图,都要保证有反向边)

标签:缩点,xor,建图,蕴含,集合,sat,小记
From: https://www.cnblogs.com/gmh77/p/18538459

相关文章

  • 【论文笔记】VCoder: Versatile Vision Encoders for Multimodal Large Language Mode
    ......
  • 树形 dp / 换根 dp 入门小记
    背景4.14打abc的时候一眼e题是换根模板,但是我不会,于是就来补档了。什么是树形dp/换根dp一种在树上的dp,一般用dfs进行状态转移。树形dp一般用儿子来更新父亲的答案。换根dp一般在第二次dfs时用父亲的答案转移到儿子去。引入经典树形dp例题:没有上司的舞......
  • SATA系列专题之五:Link Power Management解析
     一、故事前传在之前的文章中,我们已经针对SATA的主要结构进行了较为详细的解析,详见前期文章:1,浅析SATAPhysicalLayer物理层OOB信号;2,SATALinkLayer链路层解析2.0-2.3;3,SATATransportLayer传输层解析3.0-3.4;4,SATACommandLayer命令层解析4.0-4.1;我们这里主要解......
  • SATA系列专题之二《2.2 Link layer链路层加扰/解扰/CRC解析》
    文章目录系列文章目录前言一、故事前传二、SATALinkLayer加扰/解扰解析二、SATALinkLayerCRC解析总结 前言一、故事前传我们之前说到Link layer的结构,linklayer的作用大致可以包括以下几点:Frame flowcontrolCRC的生成与检测对数据与控制字符......
  • SATA系列专题之二《2.3 Link layer链路层 Frame结构以及Primitive基元解析》
    文章目录系列文章目录前言一、故事前传二、Frame结构解析二、Primitive基元解析总结 前言  一、故事前传我们之前说到Linklayer的结构,linklayer的作用大致可以包括以下几点:FrameflowcontrolCRC的生成与检测(已解析,详细见历史文章)对数据与控制......
  • SATA系列专题之三《3.0 Transport Layer传输层概述》
    系列文章目录文章目录前言一、故事前传二、SATATransportLayer传输层概述总结 前言 一、故事前传在之前的文章中,我们有提到SATA主要包括:应用层(ApplicationLayer),传输层(TransportLayer),链路层(LinkLayer)以及物理层(PhysicalLayer),SATA结构如下图:......
  • SATA系列专题之三:3.3 Transport Layer传输层Flow Control机制解析
    一、故事前传在之前的文章中,已经解析了SATA协议的部分相关内容。较为详细解释请见之前的文章:1,浅析SATAPhysicalLayer物理层OOB信号;2,SATALinklayer链路层解析2.0-2.3;3,SATATransportlayer链路层解析3.0-3.2;我们这里主要解析TransportlayerFlowControl机制相关内容......
  • SATA系列专题之一《1.0 Physical Layer物理层OOB信号》
    文章目录前言一、SATA物理层概述二、OOB(OutofBand)信号解析三、实例解析总结前言一、SATA物理层概述说OOB之前,首先得了解一下SATA结构以及物理层的含义。SATA主要包括:应用层(ApplicationLayer), 传输层(TransportLayer),链路层(LinkLayer)、物理层(P......
  • 关于工作中遇到的一些数组操作的小记
    1.Array对象如何转换成Object对象在JavaScript中,Array对象实际上已经是Object的一种特殊类型。Array继承了Object的所有属性和方法,所以你不需要转换Array对象到Object对象。不过,如果你想把Array对象转换为纯粹的Object对象,可以使用Object.assign()方法来实现......
  • 选择性必修1 化学反应原理 小记
    可能是易错升高温度时\(v_{\text{正}}\)和\(v_{\text{逆}}\)均增大。稀释酸时,并不是所有的离子浓度均减小:\(\mathrm{OH^-}\)。图表的浓度/其他数据可能不止指一个量。多检查一下pH比大小的方向。连上双键的能量不要用成连上单键的能量。绝热过程指的是不与外界进行热......