【bzoj2140】: 稳定婚姻 图论-tarjan
哎。。都是模板题。。
一眼看过去 哇 二分图哎
然后发现好像并不能匈牙利算法
自己xjb画两张图,发现二分图左向右连配偶的边,然后右向左连交往过的边
然后如果Bi Gi在同一个强连通分量里面就一定可以在Bi Gi离婚以后再增广一次
最开始用map维护一下名字就好了
/* http://www.cnblogs.com/karl07/ */
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <stack>
#include <map>
#include <string>
using namespace std; const int N=;
struct edge{
int next,to;
}e[N*];
int n,m,ade,cnt,cq;
int first[N],low[N],dfn[N],vis[N],ins[N],pos[N];
stack <int> S;
map <string,int> mp; void addedge(int x,int y){
e[++ade].to=y;
e[ade].next=first[x];
first[x]=ade;
} #define s e[x].to
void dfs(int p){
dfn[p]=low[p]=++cnt;
ins[p]=vis[p]=;
S.push(p);
for (int x=first[p];x;x=e[x].next){
if (!vis[s]){
dfs(s);
if (ins[s]) low[p]=min(low[p],low[s]);
}else{
if (ins[s]) low[p]=min(low[p],dfn[s]);
}
}
if (low[p]==dfn[p]){
cq++;
while (S.top()!=p){
pos[S.top()]=cq;
ins[S.top()]=;
S.pop();
}
pos[S.top()]=cq;
ins[S.top()]=;
S.pop();
}
} int main(){
scanf("%d",&n);
for (int i=;i<=n;i++){
char a[],b[];
scanf("%s%s",a,b);
mp[a]=i,mp[b]=i+n;
addedge(i,i+n);
}
scanf("%d",&m);
for (int i=;i<=m;i++){
char a[],b[];
scanf("%s%s",a,b);
addedge(mp[b],mp[a]);
}
for (int i=;i<=n*;i++) if (!vis[i]) dfs(i);
for (int i=;i<=n;i++){
if (pos[i]==pos[i+n]) puts("Unsafe"); else puts("Safe");
}
return ;
}
【bzoj2140】: 稳定婚姻 图论-tarjan的更多相关文章
- BZOJ2140: 稳定婚姻(tarjan解决稳定婚姻问题)
2140: 稳定婚姻 Time Limit: 2 Sec Memory Limit: 259 MBSubmit: 1321 Solved: 652[Submit][Status][Discuss] ...
- BZOJ2140: 稳定婚姻
题解: 题意就是求二分图的必须边. 我们有结论: 在残量网络上跑tarjan,对于一条边(u,v) 如果该边满流||scc[u]==scc[v],那么该边是可行边. 因为如果scc[u]==scc[v ...
- 稳定婚姻(tarjan)
传送门 这道题一开始可能以为是二分图匹配……?不过后来发现和二分图没啥大关系. 简单分析之后发现,把夫妻之间连边(男性向女性连边),之后再将每对曾经是情侣的人连边(女性向男性连边),当然以上的方向可以 ...
- BZOJ2140 稳定婚姻[强连通分量]
发现如果$B_i$和$G_j$配对,那么$B_j$又要找一个$G_k$配对,$B_k$又要找一个$G_l$配对,一直到某一个$B_x$和$G_i$配对上为止,才是不稳定的. 暴力是二分图匹配.匈牙利算 ...
- 【BZOJ2140】稳定婚姻 Tarjan
[BZOJ2140]稳定婚姻 Description 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有关. ...
- 图论补档——KM算法+稳定婚姻问题
突然发现考前复习图论的时候直接把 KM 和 稳定婚姻 给跳了--emmm 结果现在刷训练指南就疯狂补档.QAQ. KM算法--二分图最大带权匹配 提出问题 (不严谨定义,理解即可) 二分图 定义:将点 ...
- luogu P1407 稳定婚姻-tarjan
题目背景 原<工资>重题请做2397 题目描述 我国的离婚率连续7年上升,今年的头两季,平均每天有近5000对夫妇离婚,大城市的离婚率上升最快,有研究婚姻问题的专家认为,是与简化离婚手续有 ...
- 【稳定婚姻问题】【HDU1435】【Stable Match】
2015/7/1 19:48 题意:给一个带权二分图 求稳定匹配 稳定的意义是对于某2个匹配,比如,( a ---- 1) ,(b----2) , 如果 (a,2)<(a,1) 且(2,a)& ...
- 稳定婚姻问题和Gale-Shapley算法(转)
什么是算法?每当有人问作者这样的问题时,他总会引用这个例子:假如你是一个媒人,有若干个单身男子登门求助,还有同样多的单身女子也前来征婚.如果你已经知道这些女孩儿在每个男孩儿心目中的排名,以及男孩儿们在 ...
随机推荐
- 从request获取各种路径总结 request.getRealPath("url")
转载:http://blog.csdn.net/piaoxuan1987/article/details/8541839 equest.getRealPath() 这个方法已经不推荐使用了,代替方法是 ...
- vs中的强大的代码段管理
vs中的代码段管理可以实现大段固定文本的快捷输入,方法: 首先编写.snippet文件如: <?xml version="1.0" encoding="utf-8& ...
- CSS 透明
filter:alpha(opacity=60);-moz-opacity:0.5;opacity: 0.5;
- Windows 环境下Java调用CRF++详解
1.步骤一览 2.步骤详情 2.1.环境准备 Swig(Simplified Wrapper and Interface Generator)下载,Windows操作系统直接解压即可使用 CRF++( ...
- 虚拟机之 LNMP
LNMP就是Linux nginx mysql php 一.mysql 下载安装mysql转至 LAMP (点击“LAMP”即可跳转) 也可以从快照跳转至mysql安装ok 二.php 下载同上, 1 ...
- Sublime Text 套件介紹:Pretty JSON
JSON,一個輕量級的資料交換語言,目前許多網站AJAX request的回應結果都是JSON格式 以下是一個標準的JSON格式 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...
- y3pP5nCr攀科汲野奶园 O8XY02cm脱罕谘诜驮仆补殖沦ltGLD71R
{字母=2}谘们土毁低聊临禄霉{字母=3}焚派匠莆胺慷{字母=3}孔毡沃卮肪{字母=1}}{字母=1}尚澈心于逃丫导九壮何前僚九粤绦剖逃仲寺椿澈裳枚盟裳鹊酱滥食孤罕胤狼鞘孜跋柿悸菇沽惫菇卮认鹿锤敦擞众 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 4_Linear Regression with Multiple Variables 多变量线性回归
Lecture 4 Linear Regression with Multiple Variables 多变量线性回归 4.1 多维特征 Multiple Features4.2 多变量梯度下降 Gr ...
- C# AOP实现
using System; using System.Collections.Generic; using System.Text; using System.Runtime.Remoting.Pro ...
- 值得一做》关于数学与递推 BZOJ1002 (BZOJ第一页计划)(normal+)
什么都不说先甩题目 Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之 ...