描述

the second year of the university somebody started a study on the romantic relations between the students. The relation “romantically involved” is defined between one girl and one boy. For the study reasons it is necessary to find out the maximum set satisfying the condition: there are no two students in the set who have been “romantically involved”. The result of the program is the number of students in such a set.

输入

The
input contains several data sets in text format. Each data set
represents one set of subjects of the study, with the following
description:

the number of students
the description of each student, in the following format
student_identifier:(number_of_romantic_relations) student_identifier1 student_identifier2 student_identifier3 ...
or
student_identifier:(0)

The student_identifier is an integer number between 0 and n-1, for n students.

输出

For each given data set, the program should write to standard output a line containing the result.

样例输入

7
0: (3) 4 5 6
1: (2) 4 6
2: (0)
3: (0)
4: (2) 0 1
5: (1) 0
6: (2) 0 1
3
0: (2) 1 2
1: (1) 0
2: (1) 0

样例输出

5
2

题意

N个人,求最大子集使得任何两个人都没有亲密关系

题解

先把亲密关系连图,跑匈牙利得到最大匹配,这里不知道男女,所以最大匹配得/2

答案就是N-最大匹配/2

代码

 #include<bits/stdc++.h>
#define pb push_back
using namespace std; const int N=; vector<int> G[N];
int n,match[N],vis[N];
bool dfs(int u)
{
for(int i=;i<(int)G[u].size();i++)
{
int v=G[u][i];
if(!vis[v])
{
vis[v]=;
if(match[v]==-||dfs(match[v]))
{
match[v]=u;
return true;
}
}
}
return false;
}
int hungary()
{
int ans=;
memset(match,-,sizeof match);
for(int i=;i<n;i++)
{
memset(vis,,sizeof vis);
ans+=dfs(i);
}
return ans;
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=;i<n;i++)G[i].clear();
for(int i=,x,y,k;i<n;i++)
{
scanf("%d: (%d)",&x,&k);
while(k--)scanf("%d",&y),G[x].pb(y);
}
printf("%d\n",n-hungary()/);
}
return ;
}

TZOJ 1321 Girls and Boys(匈牙利最大独立集)的更多相关文章

  1. POJ 1466 Girls and Boys (匈牙利算法 最大独立集)

    Girls and Boys Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 10912   Accepted: 4887 D ...

  2. HDU 1068 Girls and Boys 二分图最大独立集(最大二分匹配)

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  3. HDU 1068 Girls and Boys (二分图最大独立集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 有n个同学,格式ni:(m) n1 n2 n3表示同学ni有缘与n1,n2,n3成为情侣,求集合 ...

  4. poj 1466 Girls and Boys (最大独立集)

    链接:poj 1466 题意:有n个学生,每一个学生都和一些人有关系,如今要你找出最大的人数.使得这些人之间没关系 思路:求最大独立集,最大独立集=点数-最大匹配数 分析:建图时应该是一边是男生的点, ...

  5. HDU 1068 Girls and Boys(最大独立集)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 题目大意:有n个人,一些人认识另外一些人,选取一个集合,使得集合里的每个人都互相不认识,求该集合 ...

  6. hdu - 1068 Girls and Boys (二分图最大独立集+拆点)

    http://acm.hdu.edu.cn/showproblem.php?pid=1068 因为没有指定性别,所以要拆点,把i拆分i和i’ 那么U=V-M (M是最大匹配,U最大独立集,V是顶点数) ...

  7. hdu1068 Girls and Boys 匈牙利算法(邻接表)

    #include <cstdio> #include <algorithm> #include <cstring> #include <vector> ...

  8. hdoj 1068 Girls and Boys【匈牙利算法+最大独立集】

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. hdu 1068 Girls and Boys(匈牙利算法求最大独立集)

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

随机推荐

  1. Mysql索引,有哪几种索引,什么时候该(不该)建索引;SQL怎么进行优化以及SQL关键字的执行顺序

    索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 1.按照索引列值的唯一性,索引可分为唯一索引和非唯一索引 非唯一索引:B树索引 crea ...

  2. synchronized 和 lock 的区别

    1.Lock不是Java语言内置的,synchronized是Java语言的关键字,因此是内置特性.Lock是一个类,通过这个类可以实现同步访问: 2.Lock和synchronized有一点非常大的 ...

  3. es6新特性之箭头函数

    <script> { // es3,es5 var evens = [1, 2, 3, 4, 5]; var odds = evens.map(function (v) { return ...

  4. ORM一对多增加记录

    多表操作(一对多)增加记录: 1)Bookl.objects.creat(name='python', price=77, publish_id=2) 2) pulish_obj = Publish. ...

  5. RTS寻路相关资料收集

    http://www.cocoachina.com/game/20150824/13174.html RVO算法 RVO避开agent

  6. VsCode 使用习惯设置(备份)

    { "window.menuBarVisibility": "toggle", "workbench.statusBar.visible": ...

  7. 使用karma做多浏览器的UI测试

    avalon1.6开发得差不多,这次使用先进的开发理念进行开发,比如模块化,单元测试什么... ui测试是重要的一环,之前用阿里的totoro,但打开浏览器不方便.于是从webdrieverio, n ...

  8. linux 内核根文件系统

    参考: http://blog.csdn.net/guopeixin/article/details/5962482 http://www.yunweipai.com/archives/1184.ht ...

  9. 微信小程序 在canvas画布上划动,页面禁止滑动

    要实现微信小程序 在canvas画布上划动,页面禁止滑动,不仅要设置disable-scroll="true",还要要给canvas绑定一个触摸事件才能生效. <canvas ...

  10. linux 基本操作centos7

    基于centos7  ,很多都跟6不同 Centos 7 firewall 命令: 查看已经开放的端口:firewall-cmd --list-ports 开启端口firewall-cmd --zon ...