Girls and Boys

2023-12-10 09:08
文章标签 boys girls

本文主要是介绍Girls and Boys,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://acm.hdu.edu.cn/showproblem.php?pid=1068

这题大概意思就是说找出一个最大的集合使得该集合的任意两个人木有关系。

根据最大独立集 =顶点数 - 最大匹配数

由于题目没有给出哪些是男的哪些是女的,也就是说没有明显的二分图,所以将一个人拆成两个人进行最大匹配。由于一个拆成两个,所以最大匹配数应该是求出来的数除以2 。最后再用顶点数减就行了。

用邻接表,上代码


#include<iostream>

#include<cstdio>
#include<cstring>
using namespace std;
int n,map[1010][1010],vis[1010],link[1010];
int find(int a)
{
for(int i=0;i<n;i++)
{
if(!vis[i] && map[a][i])
{
vis[i]=1;
if(link[i]==-1 || find(link[i]))
{
link[i]=a;
return 1;
}
}
}
return 0;
}
int main()
{
while(cin>>n)
{
int stunum,num;
char mao,kong,left,right;
memset(map,0,sizeof(map));
memset(link,-1,sizeof(link));
for(int i=0;i<n;i++)
{
scanf("%d%c%c%c%d%c",&stunum,&mao,&kong,&left,&num,&right);
while(num--)
{
int temp;
scanf("%d",&temp);
map[i][temp]=1;
}
}
int count=0;
for(int i=0;i<n;i++)
{
memset(vis,0,sizeof(vis));
count+=find(i);
}
cout<<n-count/2<<endl;
}
return 0;
}

这篇关于Girls and Boys的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476668

相关文章

HDU1068/POJ1466_Girls and Boys(二分图/最大独立集=N-最大匹配)

解题报告 http://blog.csdn.net/juncoder/article/details/38160591 题目传送门(POJ) 题目传送门(HDU) 题意: 求满足条件的最大集合:集合内任何两个人都没有浪漫关系 思路: 跟POJ2771一样的题,变的简单多了。POJ2771解题报告 #include <cstdio>#include <cstring>#in

【PAT】【Advanced Level】1036. Boys vs Girls (25)

1036. Boys vs Girls (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue This time you are asked to tell the difference between the lowest grade of

PAT甲级真题及训练集(10)--1036. Boys vs Girls (25)

1036. Boys vs Girls (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue This time you are asked to tell the difference between the lowest grade of a

Anime Girls Pack

动漫女孩包 35个动画(就地)支持人形。 8情绪。 角色列表:原艾艾琪惠美子惠理文子星薰和子佳子奈子理子凛老师小樱老师津雨僵尸女孩01 下载:​​Unity资源商店链接资源下载链接 效果图:

hdu (2578) Dating with girls(1)

此题应注意的是; 这n个数可能有相同的,所以把相同的留一个在这里, #include<stdio.h> #include<stdlib.h> int cmp(const void*a,const void*b) {     return *(int*)a-*(int*)b; } int main() {     int m,n,i,j,k,h,low,hig,mid,p;     int a[1

hdu(2579) Dating with girls(2)

这个题有意思的是:墙可以消失,只要时间是k的倍数, 在此时墙都可以消失一秒, 单此题不同之处就是,每一个点可以走多次,但必须是在不同的时刻, 这就必须要用三维数组来标记了。 visit[i][j][s/k]表示在(i,j)这个点在s/k的时刻走过了。。 所以在本题可以行走的条件是; 一;map[i][j]=='.'; 二;map[i][j]=='#'and s/k==0时;任意一个都行。。

hdu 4730 We Love MOE Girls(水题)

题目链接:hdu 4730 We Love MOE Girls 题目大意:给定一个字符串,如果末尾存在desu,就删除。然后统一加上nanodesu. 解题思路:水题。 #include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 205;const char

hdu1068Girls and Boys(二分匹配,最大独立集)

Problem Description 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 o

hdu1068 Girls and Boys 最大独立集

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 r

2019 ICPC银川区域赛 Girls Band Party(分组背包)

You are currently playing a game called “Garupa”. In an event of the game, you are trying to get more event points. You have nn cards, each with its own name, color, and power. When you play the game,