传送门:Cat VS Dog

题意:动物园有N只猫,M只狗,P个小孩。每个小孩都有自己喜欢的动物和讨厌的动物,如果他喜欢狗,那么就讨厌猫, 如果他讨厌狗,那么他就喜欢猫。某个小孩能开心,当且仅当他喜欢的动物留在动物园和讨厌的动物不在动物园里面。 现让管理员通过带走某些动物,问最多能使多少个孩子开心。

分析:为了让尽量多的孩子开心,那么要选出一个最大的集合里面的点没有矛盾,因此根据孩子之间有矛盾建边,然后选出最大独立集即可。

最大独立集=总结点-最大匹配数。因为拿整个二分图来求最大匹配,而不是具体分出X,Y二部分来求,因此最后的匹配数要除以2.

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <string>
  4. #include <cmath>
  5. #include <iostream>
  6. #include <algorithm>
  7. #include <queue>
  8. #include <cstdlib>
  9. #include <stack>
  10. #include <vector>
  11. #include <set>
  12. #include <map>
  13. #define LL long long
  14. #define mod 100000000
  15. #define inf 0x3f3f3f3f
  16. #define eps 1e-6
  17. #define N 1000
  18. #define FILL(a,b) (memset(a,b,sizeof(a)))
  19. #define lson l,m,rt<<1
  20. #define rson m+1,r,rt<<1|1
  21. #define PII pair<int,int>
  22. using namespace std;
  23. int match[N],vis[N],n,m,k;
  24. vector<int>g[N];
  25. int dfs(int u)
  26. {
  27. for(int i=,sz=g[u].size(); i<sz; i++)
  28. {
  29. int v=g[u][i];
  30. if(!vis[v])
  31. {
  32. vis[v]=;
  33. if(match[v]==-||dfs(match[v]))
  34. {
  35. match[v]=u;
  36. return ;
  37. }
  38. }
  39. }
  40. return ;
  41. }
  42. int hungary()
  43. {
  44. FILL(match,-);
  45. int ans=;
  46. for(int i=; i<=k; i++)
  47. {
  48. FILL(vis,);
  49. if(dfs(i))ans++;
  50. }
  51. return ans;
  52. }
  53. char like[N][],dislike[N][];
  54. int main()
  55. {
  56. while(scanf("%d%d%d",&n,&m,&k)>)
  57. {
  58. for(int i=; i<=k; i++)
  59. g[i].clear();
  60. for(int i=; i<=k; i++)
  61. {
  62. scanf("%s%s",like[i],dislike[i]);
  63. }
  64. for(int i=; i<=k; i++)
  65. for(int j=i+; j<=k; j++)
  66. if(strcmp(like[i],dislike[j])==||strcmp(like[j],dislike[i])==)
  67. {
  68. g[i].push_back(j);
  69. g[j].push_back(i);
  70. }
  71. int res=hungary();
  72. printf("%d\n",k-res/);
  73. }
  74. }

hdu3829(最大独立集)的更多相关文章

  1. hdu3829最大独立集

    The zoo have N cats and M dogs, today there are P children visiting the zoo, each child has a like-a ...

  2. HDU3829(KB10-J 二分图最大独立集)

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total ...

  3. HDU3829:Cat VS Dog(最大独立集)

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others)Total ...

  4. HDU3829 Cat VS Dog —— 最大独立集

    题目链接:https://vjudge.net/problem/HDU-3829 Cat VS Dog Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  5. hdu3829 二分匹配 最大独立集

    Cat VS Dog Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Problem ...

  6. HDU3829 Cat VS Dog

    题目链接:https://vjudge.net/problem/HDU-3829 题目大意: 有\(P\)个小孩,\(N\)只猫,\(M\)只狗.每个小孩都有自己喜欢的某一只宠物和讨厌的某一只宠物(其 ...

  7. poj 3692 Kindergarten (最大独立集)

    Kindergarten Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4903   Accepted: 2387 Desc ...

  8. 【BZOJ-4316】小C的独立集 仙人掌DP + 最大独立集

    4316: 小C的独立集 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 57  Solved: 41[Submit][Status][Discuss] ...

  9. loj 1201(最大独立集)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26913 思路:水题一枚,就是求最大独立集.最大独立集=顶点数-最大 ...

随机推荐

  1. js实现密码强度验证

    <html> <head> <meta http-equiv="content-type" content="text/html" ...

  2. 安卓开发23:Service详细解读

    关于Service Service说明:Service是android 系统中的四大组件之一(Activity.Service.BroadcastReceiver.ContentProvider),它 ...

  3. Android的StrictMode

    转自:http://blog.csdn.net/tonyfield/article/details/8238251 Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Goo ...

  4. <转载>如何解决子级用float浮动父级div高度不能自适应的问题

    转载:http://www.kwstu.com/ArticleView/divcss_2013101582430202 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内 ...

  5. UltraEdit配置python和lua环境

    [语法高亮] 在UltraEdit的wordfile中添加python和lua的语法支持(红色的为python,蓝色的为lua): /L10"Python" Line Commen ...

  6. Datatable.Compute小技巧

    在个人版机房重构的过程中,大家最发愁的一件事无非就是上下机,结账和报表.那么在结账的过程中,最发愁的是否就数计算日结账单的数据和周结账的数据.还记得在第一遍机房收费系统的过程中用的是for 循环,但是 ...

  7. spring mvc 接受多对象的处置

    spring mvc 接受多对象的处理 spring mvc感觉非常好用,尤其是对接收对象參数的自己主动绑定非常简便,但对于同一时候传多个对象时有些困扰. 同一时候项目并没有直接使用spring的fo ...

  8. 配置BeanUtils包,同时也是对导入第三包的步骤说明

    BeanUtils是由Apache公司开发的针对操作JavaBean的工具包. 对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法. 在由JDK提供 ...

  9. regsvr32 命令小集注册OCX控件,注册控件(包括十几个举例)

    Regsvr32 进程文件: regsvr32 or regsvr32.exe  进程名称: Microsoft DLL Registration Service  英文描述: regsvr32.ex ...

  10. php运行

    运行命令: $php 1.php php教程: http://www.w3school.com.cn/php/php_variables.asp