当前位置: 首页 > news >正文

2-SAT,用连通分量编号确定答案

并非拓扑序,从树来看,若a比a非深度更深切a非为a的祖先节点,则必不能选a非,只能选a,如果a非不为a的祖先

#include<bits/stdc++.h>
//#define int long long
#define pll pair<int,int>
using namespace std;
const int N = (1e6+10)*2;
vector<int>e[N];
int dfncnt = 0, dfn[N], low[N], sc, scc[N], in_stack[N], tp, s[N];
int in[N];
void tarjan(int u) {dfn[u] = low[u] = ++dfncnt;s[++tp] = u; in_stack[u] = 1;for (auto& v : e[u]) {if (!dfn[v]) {tarjan(v);low[u] = min(low[u], low[v]);}else if (in_stack[v])low[u] = min(low[u], dfn[v]);}if (low[u] == dfn[u]) {int v; sc++;do {v = s[tp--];scc[v] = sc;in_stack[v] = 0;} while (v != u);}
}
signed main() {ios::sync_with_stdio(0);cin.tie(0);int n, m;cin >> n >> m;while (m--) {int i, a, j, b;cin >> a >> i >> b >> j;e[a * 2 + !i].push_back(b * 2 + j);e[b * 2 + !j].push_back(a * 2 + i);}for (int i = 1; i <= 2 * n + 2; i++) {if (!dfn[i])tarjan(i);}for (int i = 1; i <= n; i++) {if (scc[i * 2] != scc[i * 2 + 1])continue;cout << "IMPOSSIBLE\n";return 0;}cout << "POSSIBLE\n";for (int i = 1; i <= n; i++)cout<<(scc[i * 2] > scc[i * 2 + 1])<<' ';cout << '\n';return 0;
}

节点,则选哪个都不冲突

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大模型在企业数智化转型中可以做哪些事情?
  • C++类的六个默认函数
  • 软件测试 - 基础(软件测试的生命周期、测试报告、bug的级别、与开发人员产生争执的调解方式)
  • 第二十七节、人物可互动标识
  • 从就业出发,深度剖析大数据行业的现状与前景
  • 科研绘图系列:Python语言时间趋势图
  • 如何在Linux系统中放大MKV视频文件的音量
  • ios调用高德地图定位报错
  • (八)Flink Join 连接
  • shaushaushau1
  • matlab实现模拟退火算法
  • 软考-软件设计师(程序设计语言习题)
  • 苹果上架没有iphone、没有ipad也可以生成截屏
  • python编程练习1-数组
  • 【内网】服务器升级nginx1.17.0
  • 【EOS】Cleos基础
  • HashMap ConcurrentHashMap
  • Java深入 - 深入理解Java集合
  • leetcode46 Permutation 排列组合
  • leetcode讲解--894. All Possible Full Binary Trees
  • Sass 快速入门教程
  • SegmentFault 2015 Top Rank
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • ubuntu 下nginx安装 并支持https协议
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue 动态创建 component
  • 百度小程序遇到的问题
  • 创建一种深思熟虑的文化
  • 大数据与云计算学习:数据分析(二)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 翻译:Hystrix - How To Use
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 关于List、List?、ListObject的区别
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 使用权重正则化较少模型过拟合
  • 我有几个粽子,和一个故事
  • 正则与JS中的正则
  • elasticsearch-head插件安装
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #Linux(make工具和makefile文件以及makefile语法)
  • #NOIP 2014#Day.2 T3 解方程
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (+4)2.2UML建模图
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (ibm)Java 语言的 XPath API
  • (Java入门)抽象类,接口,内部类
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (三)elasticsearch 源码之启动流程分析
  • (四)模仿学习-完成后台管理页面查询
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)编辑寄语:因为爱心,所以美丽
  • .aanva