博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Uva 11294 婚姻
阅读量:5875 次
发布时间:2019-06-19

本文共 1211 字,大约阅读时间需要 4 分钟。

题目链接:https://vjudge.net/contest/166461#problem/C

题意:

n对夫妻,有m对人吵过架,不能排在同一边,求新娘的一边的人;

 

分析:

每对夫妻,看成两个点,女的 2i,男的2i+1,吵架了的关系,就是必然关系,必须满足,不能在同一边;再用2-SAT

#include 
using namespace std;const int maxn = 5000+5;struct TwoSAT { int n; vector
G[maxn*2]; bool mark[maxn*2]; int S[maxn*2],cnt; bool dfs(int u) { if(mark[u^1]) return false; if(mark[u]) return true; mark[u]=1; S[cnt++]=u; for(int i=0; i
n = n; for(int i=0; i
0) mark[S[--cnt]] = false; if(!dfs(i+1)) return false; } } } return true; }} sol;int main() { int n,m; while(scanf("%d%d",&n,&m),n) { sol.init(n); char p[2][3]; int a,b; while(m--) { scanf("%d%s%d%s",&a,p[0],&b,p[1]); int u=0,v=0; if(p[0][0]=='h') u=1; if(p[1][0]=='h') v=1; sol.add_clause(a,u,b,v); } if(!sol.solve()) printf("bad luck\n"); else { for(int i=1; i
View Code

 

转载于:https://www.cnblogs.com/TreeDream/p/6959264.html

你可能感兴趣的文章
寒假。3.3.G - Common Child (最大公共子序)
查看>>
设计模式学习笔记--原型模式
查看>>
.Net 通过MySQLDriverCS操作MySQL
查看>>
JS Cookie
查看>>
ubuntu Unable to locate package sysv-rc-conf
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
MacBook如何用Parallels Desktop安装windows7/8
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
upgrade to iOS7,how to remove stroyboard?
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
zabbix监控部署
查看>>
struts中的xwork源码下载地址
查看>>
Android硬件抽象层(HAL)深入剖析(二)
查看>>
CDays–4 习题一至四及相关内容解析。
查看>>
L3.十一.匿名函数和map方法
查看>>