SAT 问题,也就是可满足性问题 Boolean Satisfiability Problem,是第一个被证明的 NPC 问题。

但是特殊的 2-SAT 我们可以通过图论的知识在线性复杂度内求解,构造出一组解。

基本的模型在 P4782 【模板】2-SAT 中有体现。

经典的标志是:AB 至少选一个,AB 要么都选,要么都不选。

简单的我们就不说了,像 P5782 [POI2001]和平委员会P6378 [PA2010] RiddleP4171 [JSOI2010] 满汉全席P5782 [POI2001] 和平委员会,都是很好的板子。

根据 伍昱 -《由对称性解 2-sat 问题》,我们可以得出:如果要输出 2-SAT 问题的一个可行解,只需要在 tarjan 缩点后所得的 DAG 上自底向上地进行选择和删除。

也就是优先选择缩点后所在连通块编号小的即可。

然而怎么会有这么板板的问题……


给定一个 0/1权有向图,给每个点赋予 ABCD 中的一个字母使得每条有向边都满足:\(w = 1 \iff (t_x, t_y) \in \{(A, D), (A, B), (B, D), (B, A), (C, D), (C, A), (C, B)\}\)

这一眼看不出来是 2-SAT,将关系画出来,大概是:

于是可以分为两组,\(a, b\) 进行 2-SAT


给定 \(n\) 对 \(m\) 维空间中的点对,求平行于坐标轴且能够覆盖每个点对中至少一个点的 \(m\) 维正方体的边长的最小值,点在正方体的边界上视为覆盖。

二分答案,好抽象,利用 2-SAT 判断。

假如当前选了某个点,那么每一维距离它 \(\gt x\) 的都不可以选,考虑排序之后,这一定是一段前缀和一段后缀,于是可以前后缀优化建图。

然而还有二选一的限制,\(\neg a \to b\) 即可。

于是总复杂度为 \(O(nk \log n)\)。


草莓城是一个个四个角坐标分别为 \(H \times W\) 的矩形,其中有

个草莓,草莓所在的点都是整点。现在要给每个草莓建一个大棚,满足大棚都处在城市内,且互不相交(指被多个大棚覆盖的区域面积为零)。要求每个大棚的形状为等腰直角三角形,对应草莓处于斜边的中点,且斜边与一条坐标轴平行、所有三角形的斜边长度相等。

请你设计一个方案使得斜边的长度最大。

是某种合法的方案。

还是二分 + 覆盖,这和上一题很类似。

但是每一个点有 \(4\) 个状态,于是成功的变成了 4-SAT NPC 问题,成功不可做。

然而可以注意到,将 \(4\) 中状态取交覆盖,发现我们只需要关注对角的二选一即可。

于是变成 \(AD\) 和 \(BC\) 两套 2-SAT 即可。

还有,我们可以 \(O(n^2)\) 建图,那么这道题就十分 naive 了。

算法学习笔记(39): 2-SAT的更多相关文章

  1. Effective STL 学习笔记 39 ~ 41

    Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  2. C / C++算法学习笔记(8)-SHELL排序

    原始地址:C / C++算法学习笔记(8)-SHELL排序 基本思想 先取一个小于n的整数d1作为第一个增量(gap),把文件的全部记录分成d1个组.所有距离为dl的倍数的记录放在同一个组中.先在各组 ...

  3. Manacher算法学习笔记 | LeetCode#5

    Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的 ...

  4. Johnson算法学习笔记

    \(Johnson\)算法学习笔记. 在最短路的学习中,我们曾学习了三种最短路的算法,\(Bellman-Ford\)算法及其队列优化\(SPFA\)算法,\(Dijkstra\)算法.这些算法可以快 ...

  5. 某科学的PID算法学习笔记

    最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...

  6. Johnson 全源最短路径算法学习笔记

    Johnson 全源最短路径算法学习笔记 如果你希望得到带互动的极简文字体验,请点这里 我们来学习johnson Johnson 算法是一种在边加权有向图中找到所有顶点对之间最短路径的方法.它允许一些 ...

  7. 算法学习笔记(5): 最近公共祖先(LCA)

    最近公共祖先(LCA) 目录 最近公共祖先(LCA) 定义 求法 方法一:树上倍增 朴素算法 复杂度分析 方法二:dfs序与ST表 初始化与查询 复杂度分析 方法三:树链剖分 DFS序 性质 重链 重 ...

  8. 算法学习笔记(3): 倍增与ST算法

    倍增 目录 倍增 查找 洛谷P2249 重点 变式练习 快速幂 ST表 扩展 - 运算 扩展 - 区间 变式答案 倍增,字面意思即"成倍增长" 他与二分十分类似,都是基于" ...

  9. Miller-Rabin 与 Pollard-Rho 算法学习笔记

    前言 Miller-Rabin 算法用于判断一个数 \(p\) 是否是质数,若选定 \(w\) 个数进行判断,那么正确率约是 \(1-\frac{1}{4^w}\) ,时间复杂度为 \(O(\log ...

  10. 算法学习笔记(9): 中国剩余定理(CRT)以及其扩展(EXCRT)

    扩展中国剩余定理 讲解扩展之前,我们先叙述一下普通的中国剩余定理 中国剩余定理 中国剩余定理通过一种非常精巧的构造求出了一个可行解 但是毕竟是构造,所以相对较复杂 \[\begin{cases} x ...

随机推荐

  1. 《C# in depth》第2章C#2.0中的更改(十五)——字面量

    一.概念 在计算机编程中,Literals(字面量)是指在程序中直接表示数据的一种方式.它们是在代码中出现的固定值,与变量不同,它们没有名称或标识符. Literals 可以用于各种数据类型,包括整数 ...

  2. 【笔记】connect by中的nocycle

    connect by主要用于父子,祖孙,上下级等层级关系的查询 常用的是prior,nocycle prior: 查询父行的限定符,格式: prior column1 = column2 or col ...

  3. 关于<property name="hibernate.hbm2ddl.auto"></property>中的参数填写

    hibernate的数据库表自动生成参数 关于<property name="hibernate.hbm2ddl.auto"></property>中的参数 ...

  4. 为什么游戏行业喜欢用PolarDB

    简介: PolarDB 在游戏行业的最佳实践 为什么游戏行业喜欢用PolarDB 游戏行业痛点 在我看来, 不同行业对数据库使用有巨大的差别. 比如游戏行业没有复杂的事务交易场景, 他有一个非常大的b ...

  5. 终于要跟大家见面了,Flink 面试指南

    面试,一个令人大多数同学头疼的问题,要么成功进入心仪公司,要么沮丧与其失之交臂.但是,如果能在面试前就能知道面试官将会问的问题,然后可以好好提前准备,这种感觉是不是特别棒? 之前社区帮大家汇总了目前 ...

  6. 阿里巴巴云数据仓库 MaxCompute 数据安全最佳实践

    ​简介:MaxCompute作为企业级SaaS模式云数据仓库,正在为客户业务及其数据提供持续的安全保护. MaxCompute 近期对产品的安全能力进行了全面升级 ,结合数据生命周期,针对数据误用.数 ...

  7. 源码解读:KubeVela 是如何将 appfile 转换为 K8s 特定资源对象的

    简介: KubeVela 是一个简单易用又高度可扩展的云原生应用管理引擎,是基于 Kubernetes 及阿里云与微软云共同发布的云原生应用开发模型 OAM 构建.本文主要目的是探索 KubeVela ...

  8. Dubbo-go v3.0 正式发布 ——打造国内一流开源 Go 服务框架

    ​简介:Dubbo-go 是常新的,每年都在不断进化.介绍 Dubbo-go 3.0 工作之前,先回顾其过往 6 年的发展历程,以明晰未来的方向. ​ 作者 | 李志信 来源 | 阿里技术公众号 作者 ...

  9. 修复 VisualStudio 构建时没有将 NuGet 的 PDB 符号文件拷贝到输出文件夹

    本文告诉大家如何修复 VisualStudio 构建时没有将 NuGet 的 PDB 符号文件拷贝到输出文件夹的问题.如果 VisualStudio 构建时没有将 NuGet 的 PDB 符号文件拷贝 ...

  10. 7.prometheus监控--监控docker

    4.监控docker 为了能够获取到Docker容器的运行状态,用户可以通过Docker的stats命令获取到当前主机上运行容器的统计信息,可以查看容器的CPU利用率.内存使用量.网络IO总量以及磁盘 ...