图论 - 2 - SAT问题
2 - SAT问题
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
-
UVA1391 Astronauts(ACM - ICPC 2006 Europe - Central)(2 - SAT问题、输出方案)
虽然题目里有A、B、C三种状态,但是每个人只有两个状态可以选择,显然是一道2-SAT; 建图的话,假设选择A(或者B)为i+n,选择C为i;首先当两个人讨厌时,一个人选C,则另一个一定选另一个,连两条边(x,y+n)和(y,x+n),同时若是两个人同类,则还需加上限制使两个人不能同时选A(或同时选B),就再连两条边(x+n,y),(y+n,x);最后跑一边tarjan 输出答案的话就不需要在跑一边拓扑排序了,因为在tarjan时强连通分量被染色的顺序就是拓扑序,所以若col(i)<col(i+n),.原创 2020-09-21 22:00:28 · 250 阅读 · 1 评论 -
UVA1146 / LA3211(ACM-ICPC 2004 Europe - Southwestern) Now or later(2-SAT问题 + 二分答案)
题目让求的是 最大值的最小值,考虑二分答案。 题目中每个飞机 要么是一种状态,要么是另一种状态,考虑 2-SAT。 二分着陆时间间隔的最小值 x。 枚举每两个飞机 i,j 的 4 种状态 设现在枚举的这个情况中,i 的着陆时间为 a,j 的着陆时间为 b,则若 ∣a−b∣<x|a-b|<x∣a−b∣<x那么就要在相应的状态间连边(此时这两个状态只能二选一)。 #include<cstdio> #include<cstring> #include<algori.原创 2020-09-21 17:57:07 · 229 阅读 · 0 评论 -
模板 - 2 - SAT问题
有 n 个布尔变量 x1∼xnx_1\sim x_nx1∼xn,另有 m 个需要满足的条件,每个条件的形式都是 「x_i为 true / false 或 x_j为 true / false」。比如 「x_1为真或 x_3为假」、「x_7为假或 x_2为假」。2-SAT 问题的目标是给每个变量赋值使得所有条件得到满足。 //时间复杂度O(n+m) //当 x 所在的强连通分量的拓扑序在 ¬x 所在的强连通分量的拓扑序之后取 x //为真 ,注意我们得到的是拓扑逆序,所以要写成color[x] <原创 2020-09-21 15:58:35 · 512 阅读 · 0 评论 -
2-SAT 问题 详解
2-SAT 问题 详解原创 2020-09-20 21:02:29 · 2897 阅读 · 5 评论 -
【2-SAT问题】解题报告:POJ 3678 Katu Puzzle(2-SAT问题的判定)
每个元素只有两种可能的取值,所以是2-SAT的模型. 我们建立2*n个点,x∈[1…n]表示x取0,x∈[n+1…n+n]表示x取1 考虑将所给的关系转化为有向边. u and v=1:u,v都必须是1.为了让他们都是1,我们需要让他们为0时出现矛盾,也就是加边(u,u+n),(v,v+n) u and v=0:如果u=1那么v=0,加边(u+n,v).同理,加边(v+n,u) u or v=1:如果u=0那么v=1加边(u,v+n).同理,加边(v,u+n) u or v=0:u,v都必须是0.为了让.原创 2020-06-22 10:21:37 · 281 阅读 · 0 评论