首页 > 其他分享 >「Note」图论方向 - 图论进阶

「Note」图论方向 - 图论进阶

时间:2023-08-21 13:23:28浏览次数:52  
标签:状态 图论 lnot 进阶 Note 有向图 节点 lor

1. 2-SAT

1.1. 介绍

对于一些节点,每个节点存在两个状态(非 \(0\) 即 \(1\)),我们给出一些如下类型的限制条件:

  • 节点 \(i\) 状态为 \(1/0\)。
  • 若节点 \(i\) 状态为 \(1/0\),那么节点 \(j\) 状态为 \(1/0\)。
  • 节点 \(i,j\ (i\not=j)\) 至少有一个为 \(1/0\)。

2-SAT 算法用于解决类似的问题,每个节点最多只能有两种状态。

我们用有向图表示节点状态之间的递推关系,我们设 \(p_i\) 表示节点 \(i\) 状态为真,我们将上述限制条件写为表达式并写为“若 \(p\) ,则 \(q\)”的形式,便于用有向图表示它们的关系:

  • \(p_i\):若 \(\lnot p_i\),则 \(p_i\)。
  • \(\lnot p_i\):若 \(p_i\),则 \(\lnot p_i\)。
  • \(p_i\lor p_j\):若 \(\lnot p_i\) 则 \(p_j\);若 \(\lnot p_j\) 则 \(p_i\)。
  • \(\lnot p_i\lor\lnot p_j\):若 \(p_i\) 则 \(\lnot p_j\);若 \(p_j\) 则 \(\lnot p_i\)。
  • \(\lnot p_i\lor p_j\):若 \(p_i\) 则 \(p_j\);若 \(\lnot p_j\) 则 \(\lnot p_i\)。

若有 \(p\Rightarrow q\),并且 \(p,q\) 相互矛盾,则 \(p\) 一定为假。
更进一步地,若有 \(p\Leftrightarrow q\),并且 \(p,q\) 相互矛盾,则此限制条件下,无解。

考虑无解的情况在有向图中的表现形式,即两个矛盾状态在图中处于同一个强连通分量中,我们考虑用 Tarjan 算法进行缩点。

对于一种可行方案则在 \(p_i,\lnot p_i\) 两个状态点中选择拓扑序更小的即可,用 Tarjan 后可省去拓扑排序过程,详见我其他博客。

1.2. 例题

咕咕咕

标签:状态,图论,lnot,进阶,Note,有向图,节点,lor
From: https://www.cnblogs.com/Eon-Sky/p/17645743.html

相关文章

  • 图论-分层图学习笔记
    在前几天模拟赛中第一次见,之前不太理解,今天大概搞明白些了。个人理解分层图:图中的边在特定的时间可以变换。那就将各个时间根据当前不同的状态分层建图。说白了就是存各边的不同状态。连边时,同一层的点可以相连,不同层的也可以连过去。所以你就会发现分层图的难度在于建图,连边......
  • 开发调试更便捷!火山引擎 DataLeap 提供 Notebook 交互式开发体验
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群Notebook是一种支持REPL模式的开发环境。所谓「REPL」,即「读取-求值-输出」循环:输入一段代码,立刻得到相应的结果,并继续等待下一次输入。Notebook通常使得探索性的开发和调试更加便捷,在Notebo......
  • 开发调试更便捷!火山引擎 DataLeap 提供 Notebook 交互式开发体验
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 Notebook是一种支持REPL模式的开发环境。 所谓「REPL」,即「读取-求值-输出」循环:输入一段代码,立刻得到相应的结果,并继续等待下一次输入。Notebook通常使得探索性的开发和调试更加便......
  • EndNote下载_EndNote官方版下载 系列软件
    EndNote免费版是一款功能非常强大的文献管理软件,EndNote免费版为用户提供了极为强大的文献管理功能,能够帮助用户将自己的文献保存到云库中,方便各种各样的文献更好的进行流通分享,简单的下载即可进行使用,感兴趣的用户快来下载体验吧。软件地址:看置顶贴endnoteX7安装教程1、首先需要......
  • 8.14-8.20学习总结博客五:Hive进阶与复杂查询
    博客题目:学习总结五:Hive进阶与复杂查询实践内容概要:学习Hive进阶的使用方法,包括复杂查询、数据转换和性能优化等方面的知识。学习资源:推荐的Hive进阶教程、实践案例和性能优化技巧。实践内容:通过编写复杂的Hive查询语句,探索Hive的高级功能和性能优化方法,并分享实践中的挑战和解决......
  • 云原生之使用Docker部署开源Leanote蚂蚁笔记
    (云原生之使用Docker部署开源Leanote蚂蚁笔记)一、Leanote蚂蚁笔记介绍1.Leanote简介Leanote蚂蚁笔记是一款云笔记工具,蚂蚁笔记(又名LeaNote)就是一款国产开源的私有云笔记软件。它支持普通格式笔记、Markdown语法、专业数学公式编辑、和思维脑图,常见的笔记相关功能它都拥有,同时......
  • 「Note」图论方向 - 图论基础
    1.差分约束1.1.介绍差分约束算法用于解决如下问题:给出若干形如\(x_a-x_b\lec\)(均为整数,可以为负数)的不等式,求一组解\(\{x_i\}\),若不存在解则判断无解。考虑将原式变形,变为\(x_a\lex_b+c\)。观察到这与单源最短路里的三角形不等式\(dis_a\ledis_b+w\)(\(w\)为节点\(......
  • MySQL-进阶篇 ( InnoDB 引擎 )
    MySQL-进阶篇(InnoDB引擎)目录MySQL-进阶篇(InnoDB引擎)逻辑存储结构架构左侧内存结构部分:右侧磁盘结构部分:后台线程事务管理介绍回顾特性的保证redolog日志undolog日志MVCC基本概念实现原理记录中的隐藏字段undolog日志readView逻辑存储结构表空间(ibd文件......
  • 「Note」数据结构方向 - 可持久化数据结构
    1.可持久化线段树1.1.介绍可持久化线段树一般用于解决区间第\(k\)小值的询问。首先考虑简化过的问题,区间\(\left[1,r\right]\)的第\(k\)小值。考虑用权值线段树(离散化或动态开点)来求\(k\)小值,接下来只需要解决区间的问题。可持久化线段树核心思想:每次插入值时保留......
  • MySQL-进阶篇 ( SQL 优化:插入 + 主键 + order by + group by + limit + count + updat
    MySQL-进阶篇(SQL优化)目录MySQL-进阶篇(SQL优化)SQL优化插入数据index批量插入手动提交事务主键插入大批量插入数据主键优化页分裂页合并主键设计原则orderby优化Usingfilesort:Usingindex:优化注意:groupby优化未创建索引时:创建索引后:优化limit优化count优化一......