Peaceful Commission
题意
委员会由若干议员组成,且必须满足:
- 对于每个党派,在委员会中恰好有 111 名代表(每个党派恰好有 222 个代表)
- 如果两名议员互不喜欢,他们不能同时加入委员会
决定是否能组成委员会,如果可以,输出字典序最小的方式
思路
按照 2−SAT2-SAT2−SAT 的方式建图,要求最小化答案字典序的话,我们可以先试一下反变量(编号更小的代表)可不可行,如果不可行,再试一下原变量,如果两个都不行(在同一个 SCCSCCSCC 中),那么显然无解
在 dfsdfsdfs 的过程中,用一个栈来保存当前这一轮访问过的点,以便回溯撤销 visvisvis 数组
这样子操作的话,每个连通块中的点最多只会访问两次,复杂度应该是线性的
// Problem: Peaceful Commission
// Contest: HDOJ
// URL: https://acm.hdu.edu.cn/showproblem.php?pid=1814
// Memory Limit: 32 MB
// Time Limit: 10000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
#define fore(i,l,r) for(int i=

该篇文章介绍了如何使用2-SAT方法解决和平委员会组建问题,通过构建图并利用深度优先搜索(DFS),确保在不违反相互不喜欢条件的情况下找到最少字典序的委员组合。
最低0.47元/天 解锁文章
254

被折叠的 条评论
为什么被折叠?



