hdu 1068 Girls and Boys

 

     求最大独立集,因为题意是男女之间关系,所以是二分图(也许那时还没有搞基吧……)这题就是最大独立集=n-(最大覆盖集=最大匹配)

     和hdu1054几乎一模一样

 

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#define INF 1E9
using namespace std;
vector<int> m[500];
int pre[500],n;
bool vis[500];
bool dfs(int v)
{
    int u;
    for(int i=0;i<m[v].size();i++)
    {
        u=m[v][i];
        if(vis[u])continue;
        vis[u]=1;
        if(pre[u]!=-1&&!dfs(pre[u]))continue;
        pre[u]=v;
        return 1;
    }
    return 0;
}
int KM()
{
    memset(pre,-1,sizeof(pre));
    int ans=0;
    for(int i=0;i<n;i++)
    {
        memset(vis,0,sizeof(vis));
        vis[i]=1;
        ans+=dfs(i);
    }
    return ans;
}
int main()
{
    while(~scanf("%d",&n))
    {
        int i,j,num,v,u;
        for(i=0;i<n;i++)m[i].clear();
        for(i=0;i<n;i++)
        {
            scanf("%d%*c%*c%*c%d%*c",&v,&num);
            for(j=0;j<num;j++)
            {
                scanf("%d",&u);
                m[v].push_back(u);
                m[u].push_back(v);
            }
        }
        printf("%d\n",n-KM()/2);
    }
}

 

时间: 2024-12-03 18:16:36

hdu 1068 Girls and Boys的相关文章

最大匹配-HDOJ 1068

HDOJ 1068 Girls 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 one boy. For the study

【二分匹配】HDU1068-Girls and Boys

说说什么是最大独立集 在二分图中, 独立集指的是两两之间没有边的顶点的集合, 顶点最多的独立集成为最大独立集. 二分图的最大独立集=节点数-最大匹配数 例子: 1 2 - 1' 3 - 2' 4 - 3'        4' 最大独立集=8-3=5. 最大独立集是1,2,3,4,4'   例题: Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

最大匹配-HDOJ 2458 Kindergarten

HDOJ 2458 Kindergarten Description In a kindergarten, there are a lot of kids. All girls of the kids know each other and all boys also know each other. In addition to that, some girls and boys know each other. Now the teachers want to pick some kids 

趣味题:重男轻女的村庄

题目 在一个世世代代都重男轻女的村庄里,村长决定颁布一条法律,村子里没有生育出儿子的夫妻可以一直生育直到生出儿子为止,假设现在村子上的男女比例是1:1,这条法律颁布之后的若干年后村子的男女比例将会() A 男的多 B 女的多 C 一样多 D 不能确定 解答 大家都知道,生男孩生女孩的概率上是一样的,意思就是说,生1000个女孩大致也要生1000个男孩,结果是1:1.所以最终结果是接近一比一. 代码模拟也是1:1的结果,而且人口数量基本不变. var girls = 0,boys=0; funct

hdu 5499 SDOI 【BestCoder Round #59 (div.2) 】

SDOI Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 298    Accepted Submission(s): 117 Problem Description The Annual National Olympic of Information(NOI) will be held.The province of Shando

HDU 1856

More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others) Total Submission(s): 6073    Accepted Submission(s): 2225 Problem Description Mr Wang wants some boys to help him with a project. Because the project

hdu 1527

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1527 hint:威佐夫博弈 基本类似于模板 #include <iostream> #include <cmath> #include <cstdio> using namespace std; const double q = (1 + sqrt(5.0)) / 2.0; // 黄金分割数 int Wythoff(int a, int b) { if (a > b)

hdu 2551 竹青遍野

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2551 hint:就是读懂题就行了 #include <iostream> #include <cstdio> using namespace std; typedef long long LL; LL data[1005]; int main() { data[0]=0; for(int i=1; i<1005; i++) data[i]+=data[i-1]+i*i*i; LL

hdu 2054 A == B?

http://acm.hdu.edu.cn/showproblem.php?pid=2054 此题巨坑,刚开始我以为是简单的水题,就用strcmp过, but错了,后来经过我苦思冥想,结果还有几组数据 0.0 和 0,1.000和1.0 , 但是我不太确定前面的0是不是有作用我还是写了,但是有人过的时候,前面的0没考虑比如: 002和2可能是相等的,也可能是不想等的所以不用判断,只能说明hdu数据不是很强啊,嘿嘿 代码如下: #include <iostream> #include <c