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

P5782 [POI 2001] 和平委员会

P5782 [POI 2001] 和平委员会

大意

\(n\) 个党派,每个党派 \(i\) 有两个代表 \(2i,2i + 1\),然后给你 \(m\) 对互相厌恶的关系,求方案。

思路

那么,相当于每个党派的两个代表就是两种情况,然后直接按其说的厌恶的关系建边跑 \(\text{2 - SAT}\) 即可。

代码

#include<iostream>
#include<vector>
#include<algorithm>
#include<cstring>
using namespace std;const int MAXN = 16005;
int n, m;
vector<int> g[MAXN];
bool vis[MAXN];
int S[MAXN], c = 0;inline int get_id(int x) {x--;return x;
}bool dfs(int u) {if (vis[u ^ 1]) return false;if (vis[u]) return true;vis[u] = true;S[c++] = u;for (int v : g[u]) {if (!dfs(v)) return false;}return true;
}bool Two_SAT() {memset(vis, 0, sizeof(vis));for (int i = 0; i < 2 * n; i += 2) {if (!vis[i] && !vis[i + 1]) {c = 0;if (!dfs(i)) {while (c > 0) vis[S[--c]] = false;if (!dfs(i + 1)) {return false;}}}}return true;
}int main() {ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 0; i < m; i++) {int a, b;cin >> a >> b;int u = get_id(a);int v = get_id(b);g[u].push_back(v ^ 1);g[v].push_back(u ^ 1);}if (!Two_SAT()) {cout << "NIE" << endl;} else {vector<int> ans;for (int i = 0; i < 2 * n; i += 2) {if (vis[i]) {ans.push_back(i + 1);} else {ans.push_back(i + 2);}}sort(ans.begin(), ans.end());for (int x : ans) {cout << x << endl;}}return 0;
}
http://www.rkmt.cn/news/123080.html

相关文章:

  • 辛普森法则
  • 《嘟嘟脸恶作剧》:说是捏脸,你还真捏脸啊?
  • 英语_阅读_if Your computer broke down_待读
  • RadeGS——PCC损失
  • 实用指南:GitHub 热榜项目 - 日榜(2025-11-20)
  • 自动化机器学习AutoML:TPOT工具从零到实战完整使用教程
  • JAVA国际版同城跑腿源码快递代取帮买帮送同城服务源码支持Android+IOS+H5 - 实践
  • 第六十二篇
  • RadeGS——添加法向量损失
  • 浅析Cursor Rules了解(工作原理、四种规则类型对比、文件结构、分层设计)及如何在项目中使用的最佳实践
  • [POI 2021/2022 R1] Domino 题解
  • 免费论文生成工具排名:8大网站+无水印下载推荐
  • 我发现跨医院联合训练让诊断准确率飙升后来才知道是横向联邦学习在数据孤岛中的绝招
  • 自考ScrumMaster-PSM:经验分享~
  • 论文查重AI率工具排行榜:9大检测平台+标准推荐
  • 9 个降AI率工具,研究生必看!
  • EtherCAT核心术语DPRAM/FMMU/SM通俗解析
  • Scikit-Learn 1.8引入 Array API,支持 PyTorch 与 CuPy 张量的原生 GPU 加速
  • 从孤岛到桥梁:我的个人知识管理进化史
  • Day33PC与移动端的适配方案简介
  • 19、Samba使用指南:名称解析与额外功能配置
  • 21、Samba使用与故障排查全解析
  • 震惊!IF9.8,中科院1区TOP或被SCI剔除!官网已“消失”......
  • USB挂起(Suspend)和远程唤醒(Remote Wakeup)之间的关系
  • 20、Samba 高级配置与使用指南
  • 100 天学会爬虫 · Day 12:为什么要给爬虫加随机 User-Agent?原理与实战
  • Jeecg 启动
  • 深入解析:量子计算:破解未来科技瓶颈的关键
  • AI元人文构想的理论构建过程与深层意义分析
  • 重练算法(代码随想录版) day44 - 动态规划part11