UVA-12083 Guardian of Decency 二分图 最大独立集
题目链接:https://cn.vjudge.net/problem/UVA-12083
题意
学校组织去郊游,选择最多人数,使得任意两个人之间不能谈恋爱
不恋爱条件是高差大于40、同性、喜欢的音乐风格不同、喜欢的运动相同中的任意一个
思路
二分图最大独立集,集合内任两节点间没有边
最大独立集节点数=总结点数-最大匹配
模版题咯
提交过程
| CE1 | 选错语言 |
| CE2 | string头文件忘写 |
| AC |
代码
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
const int maxn=500+20;
struct Person{
int hei;
bool male;
string music, sport;
}person[2][maxn];
bool G[maxn][maxn], vis[maxn];
int match[maxn], n, m;
bool dfs(int u){
for (int i=0; i<m; i++) if (!vis[i] && G[u][i]){
vis[i]=true;
if (match[i]==-1 || dfs(match[i])){
match[i]=u;
return true;
}
}return false;
}
int solve(void){
int ans=0;
memset(match, -1, sizeof(match));
for (int i=0; i<n; i++){
memset(vis, false, sizeof(vis));
if (dfs(i)) ans++;
}return ans;
}
int main(void){
int T, size;
char music[100], sport[100], sex[5];
int hei;
scanf("%d", &T);
while (T--){
n=m=0;
scanf("%d", &size);
for (int i=0; i<size; i++){
scanf("%d%s%s%s", &hei, sex, music, sport);
if (sex[0]=='M') person[0][n++]=Person{hei, 1, string(music), string(sport)};
else person[1][m++]=Person{hei, 0, string(music), string(sport)};
}
memset(G, false, sizeof(G));
for (int i=0; i<n; i++)
for (int j=0; j<m; j++){
Person &male=person[0][i], &female=person[1][j];
if (abs(male.hei-female.hei)<=40 && male.music==female.music && male.sport!=female.sport)
G[i][j]=true;
}
printf("%d\n", n+m-solve());
}
return 0;
}
| Time | Memory | Length | Lang | Submitted |
|---|---|---|---|---|
| 40ms | 1265 | C++11 5.3.0 | 2018-07-26 14:06:14 |
UVA-12083 Guardian of Decency 二分图 最大独立集的更多相关文章
- uva 12083 Guardian of Decency (二分图匹配)
uva 12083 Guardian of Decency Description Frank N. Stein is a very conservative high-school teacher. ...
- UVA - 12083 Guardian of Decency (二分匹配)
题意:有N个人,已知身高.性别.音乐.运动.要求选出尽可能多的人,使这些人两两之间至少满足下列四个条件之一. 1.身高差>40 2.性别相同 3.音乐不同 4.运动相同 分析: 1.很显然 ...
- POJ2771_Guardian of Decency(二分图/最大独立集=N-最大匹配)
解决报告 http://blog.csdn.net/juncoder/article/details/38159017 题目传送门 题意: 看到题目我就笑了.., 老师觉得这种两个学生不是一对: 身高 ...
- POJ 2771 Guardian of Decency 【最大独立集】
传送门:http://poj.org/problem?id=2771 Guardian of Decency Time Limit: 3000MS Memory Limit: 65536K Tot ...
- UVAlive3415 Guardian of Decency(最大独立集)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34831 [思路] 二分图的最大独立集. 即在二分图中选取最多的点, ...
- UVALive-3415 Guardian of Decency (最大独立集)
题目大意:一个老师要带一些学生去春游,但是要带的学生中任意两个人都满足下面四个条件中的至少一个:1.性别相同:2.身高差大与40公分:3.最喜欢的音乐类型不同:4.最喜欢的体育运动相同.问老师最多能带 ...
- POJ 2771 Guardian of Decency(最大独立集数=顶点数-最大匹配数)
题目链接: http://poj.org/problem?id=2771 Description Frank N. Stein is a very conservative high-school t ...
- Guardian of Decency(二分图)
Guardian of Decency Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submi ...
- Guardian of Decency UVALive - 3415 最大独立集=结点数-最大匹配数 老师带大学生旅游
/** 题目:Guardian of Decency UVALive - 3415 最大独立集=结点数-最大匹配数 老师带大学生旅游 链接:https://vjudge.net/problem/UVA ...
随机推荐
- ZBrush模型的细分
在ZBrush®中对模型进行雕刻时,随着细节越来越丰富,原有的面数已经不能满足我们对细节的要求,为了得到更多的细节,我们就必须增加模型的面数,让更多的面来支持我们进行雕刻,如下图(左)和下图(右)所示 ...
- 迁移IPv6:6To4隧道技术
1. IPv6 路由选择协议 首先要讨论的是RIPng(下一代).RIP非常适合用于小型网络.这正是它没有惨遭淘汰,继续用于 IPV6网络的原因.另外,还有EIGRPv6,因为它有独立于协议的模块,只 ...
- to_string函数(将数字转换成字符串)
一般常用的转换字符串的方法std::stringstream,但是效率较低;目前C ++11提供了std::to_string 效率方面:C风格的sprintf()没有动态分配内存效率最高;std:: ...
- CF960F Pathwalks_权值线段树_LIS
很不错的一道思维题. Code: #include<cstdio> #include<algorithm> #include<iostream> using nam ...
- SA 学习笔记
后缀数组是解决字符串问题的有力工具--罗穗骞 后缀数组是对字符串的后缀排序的一个工具, sa将排名为i的字符串的开头位置记录下来, rnk将开头位置为i的字符串的排名记录下来. https://www ...
- Laravel源码解析之反射的使用
前言 PHP的反射类与实例化对象作用相反,实例化是调用封装类中的方法.成员,而反射类则是拆封类中的所有方法.成员变量,并包括私有方法等.就如"解刨"一样,我们可以调用任何关键字修饰 ...
- PHP下的异步尝试四:PHP版的Promise
PHP下的异步尝试系列 如果你还不太了解PHP下的生成器和协程,你可以根据下面目录翻阅 PHP下的异步尝试一:初识生成器 PHP下的异步尝试二:初识协程 PHP下的异步尝试三:协程的PHP版thunk ...
- 洛谷 P1147 连续自然数和 (滑动窗口)
维护一个滑动窗口即可 注意不能有m到m的区间,因为区间长度要大于1 #include<cstdio> #define _for(i, a, b) for(int i = (a); i &l ...
- css不定高度实现垂直居中
1.不知道自己高度和父容器高度的情况下, 利用绝对定位只需要以下三行: parentElement{ position:relative; } childElement{ position: abso ...
- 可编辑div,将光标定位到文本之后
类似qq回复一样,某人评论之后,在对评论进行回复之后,将光标定位到文本之后: function set_focus() { el=document.getElementById('guestbook_ ...