( ̄▽ ̄)"

//凡无向图,求匹配时都要除以2
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;const int MAXN=1505;
int uN;
vector<int> g[MAXN];
int link[MAXN];
bool vis[MAXN];bool DFS(int u)
{for(int i=0;i<g[u].size();i++){int v=g[u][i];if(!vis[v]){vis[v]=1;if(link[v]==-1||DFS(link[v])){link[v]=u;return true;}}}return false;
}int hungary()
{int res=0;memset(link,-1,sizeof(link));for(int u=0;u<uN;u++){memset(vis,0,sizeof(vis));if(DFS(u)) res++;}return res;
}int main()
{int n,node,edge;while(~scanf("%d",&n)){for(int i=0;i<n;i++)g[i].clear();for(int i=0;i<n;i++){scanf("%d:(%d)",&node,&edge);int to;for(int j=0;j<edge;j++){scanf("%d",&to);g[node].push_back(to);g[to].push_back(node);}}uN=n;printf("%d\n",hungary()/2);}return 0;
}

转载于:https://www.cnblogs.com/atmacmer/p/5201865.html

HDU 1054 Strategic Game(无向二分图的最大匹配)相关推荐

  1. HDU - 1054 Strategic Game(最小点覆盖-二分图最大匹配)

    题目链接:点击查看 题目大意:给出一棵树,现在要在节点上放置士兵,每个士兵可以监视与其所在的节点直接相连的节点,问最少需要多少个士兵才能将整棵树都监视到 题目分析:求最少的节点,以保证每条边都有一个端 ...

  2. hdu 1054 Strategic Game 二分图最小点覆盖

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 题意: 给出一个无向图,求最小点覆盖. 思路: 用网络流来做设立一个超级源点和一个超级汇点. 每 ...

  3. HDU - 1054 Strategic Game (二分图匹配模板题)

    二分图匹配模板题 #include <bits/stdc++.h> #define FOPI freopen("in.txt", "r", stdi ...

  4. hdu 1054 Strategic Game 最小点覆盖 = 最大二分匹配

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1054 简单二分匹配,根据题意构造一个无向图.然后求最小点覆盖,然后扫描mark数组将曾经匹配的点所匹配 ...

  5. hdu 1054 Strategic Game

    http://acm.hdu.edu.cn/showproblem.php?pid=1054 树形DP 主要是把思路屡清楚 选个根结点进行向下搜 每个点都有两种可能 放士兵还是不放 防止重复搜索就可以 ...

  6. HDU 1054 Strategic Game 最小点覆盖

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

  7. HDU——1054 Strategic Game

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

  8. HDU 2444 The Accomodation of Students 二分图匹配

    HDU 2444 The Accomodation of Students 二分图匹配 题目来源: HDU 题意: 给出学生数n和关系数m,接下来给出m个关系. 要求将学生分成两部分,每一部分不能有互 ...

  9. HDU - 3360 National Treasures(最小点覆盖-二分图最大匹配+奇偶拆点)

    题目链接:点击查看 题目大意:给出一个n*m的矩阵,每个点都有一个权值,-1表示该格子为警卫,否则表示该格子有宝物: 当前点的权值二进制为1的地方代表需要一个警卫(编号为二进制从右往左数的位置),警卫 ...

  10. 二分图的最大匹配 匈牙利算法

    基本概念 1.二分图: 二分图又称作二部图,是图论中的一种特殊模型. 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别 ...

最新文章

  1. php写实体类,PHP实体类
  2. 基于JSP实现校园二手交易平台
  3. k8s控制器模式介绍
  4. 【贪心】Sunscreen(poj 3614/luogu 2887)
  5. 响应式多级菜单 侧边菜单栏_使用纯HTML和OmniFaces构建动态响应的多级菜单
  6. 政府公开数据可视化_公开演讲如何帮助您设计更好的数据可视化
  7. ObjectArx创建自定义实体
  8. BZOJ4681 [jsoi2010]旅行
  9. 瞬间读懂什么是互联网思维、大数据、O2O、众筹、红海
  10. 我的Android第二章
  11. 服务提供者框架理解草图
  12. java毕向东学习笔记——day09
  13. 中海达数据怎么转rinex_GPS_OEM原始数据向Rinex格式转换的方法
  14. 看不见的,就是不存在么?《平面国》读后感
  15. protel dxp2004第三讲之仿真设计
  16. Postman的下载及安装
  17. 计算机网络 路由选择,路由选择
  18. 利用 cv2 给图片添加文字
  19. 2021年岳阳市高考成绩查询,2021年岳阳高考状元名单公布,岳阳文理科状元是谁多少分...
  20. 在手机安装 Kali Linux

热门文章

  1. SpaceEmacs Rock Day2 学习笔记
  2. Autoware docker 环境安装
  3. 高仿爱鲜蜂购物应用源码
  4. Python多线程学习资料1
  5. Oracle Enterprise Linux 64-bit 下Oracle11g的监听配置改动及測试步骤
  6. 06.SpringBoot的webjars和静态资源映射
  7. Linux下Oracle数据库的启动过程、关闭过程
  8. python提取百度首页链接_python获取百度热榜链接的实例方法
  9. python清空字典保留变量_python中字典删除元素
  10. hibernate 镜像下载_虚拟光驱软件下载手机版-虚拟光驱免费中文版64位下载v5.8.0...