Sample Input
4
0:(1) 1
1:(2) 2 3
2:(0)
3:(0)
5
3:(3) 1 4 2
1:(1) 0
2:(0)
0:(0)
4:(0)
 
Sample Output
1
2

最小点覆盖=最大匹配数

水题,懒的拍了

  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<string.h>
  5. #include<vector>
  6. using namespace std;
  7. const int MAXN=;
  8. int linker[MAXN];
  9. bool used[MAXN];
  10. vector<int>map[MAXN];
  11. int uN;
  12. bool dfs(int u)
  13. {
  14. for(int i=;i<map[u].size();i++)
  15. {
  16. if(!used[map[u][i]])
  17. {
  18. used[map[u][i]]=true;
  19. if(linker[map[u][i]]==-||dfs(linker[map[u][i]]))
  20. {
  21. linker[map[u][i]]=u;
  22. return true;
  23. }
  24. }
  25. }
  26. return false;
  27. }
  28. int hungary()
  29. {
  30. int u;
  31. int res=;
  32. memset(linker,-,sizeof(linker));
  33. for(u=;u<uN;u++)
  34. {
  35. memset(used,false,sizeof(used));
  36. if(dfs(u)) res++;
  37. }
  38. return res;
  39. }
  40. int main()
  41. {
  42. int u,k,v;
  43. int n;
  44. while(scanf("%d",&n)!=EOF)
  45. {
  46. for(int i=;i<MAXN;i++)
  47. map[i].clear();
  48. for(int i=;i<n;i++)
  49. {
  50. scanf("%d:(%d)",&u,&k);
  51. while(k--)
  52. {
  53. scanf("%d",&v);
  54. map[u].push_back(v);
  55. map[v].push_back(u);
  56. }
  57. }
  58. uN=n;
  59. printf("%d\n",hungary()/);
  60. }
  61. return ;
  62. }

hdu 1054 最小点覆盖的更多相关文章

  1. hdu 1054(最小点覆盖集)

    Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. I - Strategic Game - hdu 1054(最小点覆盖)

    题意:用最小的点来覆盖全部的边,因为二分图里面最大的匹配就是最小覆盖,所以直接匹配一下即可 ****************************************************** ...

  3. hdu 1498(最小点覆盖集)

    50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  4. hdu 1150 最小点覆盖

    题目大意;有两台机器A和B以及N个需要运行的任务.每台机器有M种不同的模式,而每个任务都恰好在一台机器上运行.如果它在机器A上运行,则机器A需要设置为模式xi,如果它在机器B上运行,则机器A需要设置为 ...

  5. hdu 3360 最小点覆盖 **

    题意:给你一个图,图中有宝物和保安两种元素.每个宝物需要周围的某些位置同时安放保安(如果那些位置有宝物,可以把宝物替换成保安)问你最少需要再安置多少保安,可以使所有宝物满足要求. 题意有点难懂 链接: ...

  6. HDU - 1054 Strategic Game(二分图最小点覆盖/树形dp)

    d.一颗树,选最少的点覆盖所有边 s. 1.可以转成二分图的最小点覆盖来做.不过转换后要把匹配数除以2,这个待细看. 2.也可以用树形dp c.匈牙利算法(邻接表,用vector实现): /* 用ST ...

  7. HDU 1054 Strategic Game 最小点覆盖

     最小点覆盖概念:选取最小的点数覆盖二分图中的所有边. 最小点覆盖 = 最大匹配数. 证明:首先假设我们求的最大匹配数为m,那么最小点覆盖必然 >= m,因为仅仅是这m条边就至少需要m个点.然后 ...

  8. HDU 1054 Strategic Game (最小点覆盖)【二分图匹配】

    <题目链接> 题目大意:鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他无法找到解决方案,速度不够快,那么他很伤心.现在,他有以下的问题.他必须捍卫一个中世纪的城市,形成了树的道路.他把战士的 ...

  9. HDU 1054 Strategic Game(最小路径覆盖)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 题目大意:给你一棵树,选取树上最少的节点使得可以覆盖整棵树. 解题思路: 首先树肯定是二分图,因 ...

随机推荐

  1. tar 的一个记录

    今天看到群里有人在问.用tar命令备份/etc/passwd 文件提示删除/的提示 这里我要说明下,tar的打包压缩 命令: tar -zcv -f /backup/passwd.tar.gz /et ...

  2. 繁华模拟赛 Vincent的城堡

    #include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...

  3. 360双击ctrl搜索可能会与firefox快捷键冲突

    最近使用火狐浏览器时有好几次要在网页上的对话框输入文字时出现问题,按下字母键直接跳出了firefox菜单选项,用鼠标重新定位到输入位置再打还是不行,照样会弹出菜单提示,如下图,这可能是有什么快捷键冲突 ...

  4. Linux and the Unix Philosophy (Linux/Unix设计思想)

    http://www.iwangzheng.com/ 大约30年前,当美国人边开着大型轿车边享受着其他国家民众的羡慕目光时,大众汽车却在美国开展了一项主题为“小即是美”的广告营销活动.那时,美国人对大 ...

  5. 从零开始写一个武侠冒险游戏-7-用GPU提升性能(2)

    从零开始写一个武侠冒险游戏-7-用GPU提升性能(2) ----把地图处理放在GPU上 作者:FreeBlues 修订记录 2016.06.21 初稿完成. 2016.08.06 增加对 XCode ...

  6. Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程

    VMware workstation 是一个可以进行桌面操作的虚拟软件.它可以让我们在一台电脑或者虚拟机中运行多个虚拟机. 由VMware公司研发和维护.由于是商业软件,我们需要买他们家的许可证或者说 ...

  7. CPU tick counter

    #define rdtscll(val) \ __asm__ __volatile__ ("rdtsc" : "=A" (val)) example #incl ...

  8. easyui-datagrid 两次请求

    原因分析及解决方案 html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url:然后又调用js初始 ...

  9. 【leetcode】Excel Sheet Column Number

    Excel Sheet Column Number Related to question Excel Sheet Column Title Given a column title as appea ...

  10. Android Studio项目整合PullToRefresh的问题记录

    PullToRefresh下拉刷新在App中应用非常频繁,然而PullToRefresh是在ADT下开发完成的.如果要将其整合到Android Studio目录下的话颇费周折.前面的文章“Androi ...