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

CF228E-The Road to Berland is Paved With Good Intentions

CF228E-The Road to Berland is Paved With Good Intentions

题目大意

一张 \(n\) 个节点, \(m\) 条边的无向图,初始这些边有 \(0,1\) 边权。你可以进行操作是,选择一个节点,将所有连接该节点的边权取反。判断你是否可以通过 \(n\) 次以内操作,将所有边全部变成 \(1\)

题解

可以发现一个点连续取两次及以上是没有意义的。所以问题转化为每个点要不要取的问题。对于每条边,如果初始边权为 \(1\) ,那么两端的点要么都取,要么都不取才可以。如果初始边权为 \(0\) ,那么一边取一边不取才行。所以问题由此转化成了一个 \(2SAT\) 问题。

#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define umap unordered_map
#define pq(x) priority_queue<x>
#define ppq(x) priority_queue<x,vector<x>,greater<x>>
#define endl '\n'
using namespace std;
using i128 = __int128;
const int mod =1e9+7;
template <typename T>void read(T&x){x=0;int f = 1;char c=getchar();for(;!isdigit(c);c=getchar())if(c=='-')f=-1;for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);x*=f;
}
template <typename T>void print(T x) {if (x < 0) { putchar('-'); x = -x; }if (x > 9) print(x / 10);putchar(x % 10 + '0');
}
#define int long long
class TwoSAT {
public:int n; int total_nodes;  vector<vector<int>> adj;  vector<int> dfs_num; vector<int> dfs_low; vector<bool> in_stack;  stack<int> stk; vector<int> comp; int dfs_counter;  int comp_cnt;  vector<bool> assignment;  void tarjan(int u) {dfs_num[u] = dfs_low[u] = ++dfs_counter;stk.push(u);in_stack[u] = true;for (int v : adj[u]) {if (dfs_num[v] == 0) {tarjan(v);dfs_low[u] = min(dfs_low[u], dfs_low[v]);} else if (in_stack[v]) {dfs_low[u] = min(dfs_low[u], dfs_num[v]);}}if (dfs_low[u] == dfs_num[u]) {int v;do {v = stk.top();stk.pop();in_stack[v] = false;comp[v] = comp_cnt;} while (v != u);comp_cnt++;}}int node(int x) const {return x > 0 ? 2 * (x - 1) : 2 * (-x - 1) + 1;}TwoSAT(int n) : n(n), total_nodes(2 * n) {adj.resize(total_nodes);dfs_num.resize(total_nodes, 0);dfs_low.resize(total_nodes, 0);in_stack.resize(total_nodes, false);comp.resize(total_nodes, -1);assignment.resize(n, false);dfs_counter = 0;comp_cnt = 0;}void add(int a, int b) {int a_node = node(a);int b_node = node(b);adj[a_node].push_back(b_node);adj[b_node].push_back(a_node);}bool solve() {for (int i = 0; i < total_nodes; i++) {if (dfs_num[i] == 0) {tarjan(i);}}for (int i = 0; i < total_nodes; i += 2) {if (comp[i] == comp[i ^ 1]) {return false;  }}for (int i = 0; i < total_nodes; i += 2) {assignment[i / 2+1] = comp[i] < comp[i ^ 1];}return true;}
};
const int N=5e5+5;
const int M=2e6+5;
inline void solve()
{int n,m;cin>>n>>m;TwoSAT t(n);for(int i=1;i<=m;i++){int u,v,w;cin>>u>>v>>w;if(w) t.add(u,v),t.add(-u,-v);else t.add(-u,v),t.add(u,-v);}if(!t.solve()){cout<<"Impossible"<<endl;}else{vector<int> ans;for(int i=1;i<=n;i++){if(t.assignment[i]) ans.push_back(i);}cout<<ans.size()<<endl;for(auto i:ans) cout<<i<<" ";}
//	for(int i=0;i<2*n;i++) cout<<t.comp[i]<<" ";
}signed main()
{ios;int T=1;
//	cin>>T;for(;T--;) solve();return 0;
}
http://www.gsyq.cn/news/71201.html

相关文章:

  • 2025年中国五大内磁喇叭厂家推荐:看哪家品质可靠
  • PbootCMS如何实现上传的文件使用原名称(PbootCMS 二开实现非图片文件使用原名称保存的方法)
  • 2025年惠州口碑好的民办高级中学排行榜,求推荐实力不错的民
  • 2025年度北京冲锋衣棉服合作商排行榜:冲锋衣棉服加工厂哪家
  • 2025全国矿用橡套电缆公司排名 煤矿极端环境适用
  • 2025温州奢侈品名包回收TOP5权威推荐:诚信名包回收门店
  • 羽绒被买什么牌子好?从原料到工艺,深度解析 5 大优质品牌的核心优势
  • 想选一床安心羽绒被?看遍行业后,我锁定了这个专注高端制造的 “隐形冠军”
  • 2025年语言培训学校排行:日语语言培训机构前十强与行业全解
  • 2025年12月儿童助听器验配机构对比评测榜:专业服务与科学验配指南
  • 【Azure Policy】实现拒绝新建/可以修改已存在资源的 Azure Policy 方案
  • 2025年12月真空袋厂家推荐榜单:五大知名厂商综合对比与选择指南
  • 2025进口地板十大品牌综合实力排行榜 - 智能、环保与品质的巅峰对决
  • 2025年12月真空袋厂家综合推荐榜:行业趋势与实操选择要点
  • GODIAG GT327 SUPER DOIP ENET OBDII Scanner - BT4 Voltage Display for iOS/Android/Windows
  • 2025年工业冷风机在制造业应用实现重大突破,铁皮房车间厂房降温/装配车间通风降温/大型钢结构车间降温工业冷风机生产厂家哪家好
  • 2025年市场认证机构推荐:哪家权威性更高?全方位评测与用户口碑分析
  • 2025年12月背单词软件评测排名:从功能到口碑的深度解析
  • 2025停经架品牌制造商TOP5权威推荐:甄选的停经架厂家,
  • 2025宁波奢侈品回收TOP5推荐:看哪家奢侈品回收门店可靠
  • 狂揽 19000+ Star 的国产开源项目
  • 掌握比特币:开放区块链编程全解析
  • GEO优化源头厂家口碑排行,GEO优化AI搜索/广告全案策划、制作、发布/短视频矩阵/GEO优化AI工具排名GEO优化品牌口碑推荐榜
  • pbootcms站点信息调用(PbootCMS站点信息调用标签详解与使用指南)
  • pbootcms模板tag标签调用(PbootCMS Tag标签调用全攻略:从基础到进阶)
  • 2025年减震隔音板,隔音板批发,隔音板安装厂家最新推荐:企业减震工艺与售后安装保障解读
  • Nuxt.js v4中使用quill富文本组件
  • pbootcms模板导航调用方法(PbootCMS模板导航调用方法指南)
  • webpack配置不当导致接口信息泄露-实战复盘
  • 海外 EOR 名义雇主服务商推荐:海外雇佣公司精选