当前位置: 首页 > news >正文

南阳239----月老的难题『匈牙利算法』

 1 /*
 2 匈牙利算法模版题
 3 邻接表实现,邻接矩阵超时
 4 最大匹配问题
 5  */
 6 #include <cstdio>
 7 #include <vector>
 8 #include <cstring>
 9 using namespace std;
10 const int maxn = 505;
11 vector<int> v[maxn];//x = v[i][j]表示i可以与x进行匹配
12 int vis[maxn],match[maxn];//vis[i]表示i已经访问(匹配)过为了防止在每次dfs中重复访问某点,x = match[i]表示x现在和i匹配
13 bool dfs(int x)
14 {
15     for(int i = 0; i < v[x].size(); ++i)
16     {
17         int t = v[x][i];
18         if(!vis[t])
19         {
20             vis[t] = 1;
21             if(match[t] == -1 || dfs(match[t]))
22             {match[t] = x; return true;}
23         }
24     }
25     return false;
26 }
27 int hungary(int n)
28 {
29     int ans = 0;
30     for(int i = 1; i <= n; ++i)
31     {
32         memset(vis,0,sizeof vis);
33         if(dfs(i)) ++ans;
34     }
35     return ans;
36 }
37 int main()
38 {
39     int t,n,m,x,y;
40     scanf("%d",&t);
41     while(t--)
42     {
43         scanf("%d%d",&n,&m);
44         for(int i = 1; i <= n; ++i)
45             v[i].clear();
46         memset(match, -1, sizeof match);
47         while(m--)
48         {
49             scanf("%d%d",&x,&y);
50             v[x].push_back(y);
51         }
52         printf("%d\n",hungary(n));
53     }
54     return 0;
55 }

 

转载于:https://www.cnblogs.com/qq188380780/p/7356545.html

相关文章:

  • sqlplus用户指南和参考
  • VUE组件如何与iframe通信问题
  • SQL Server 2005/2008 无日志文件附加数据库
  • java Process执行linux命令
  • oracle安装问题以及监听器的问题
  • VMware在Centos7上配置静态IP的方法
  • c99和c++11的差异之一
  • 电子上的物理总线
  • IIS7中如何设置网站端口号?
  • .net framework 4.0中如何 输出 form 的name属性。
  • 通用动作
  • 模拟手工测试操作页面上的元素---留
  • 学习计算机四年后的疑惑
  • 剑指Offer-合并两个排序的链表
  • 日省吾身
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • learning koa2.x
  • rc-form之最单纯情况
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端工程化(Gulp、Webpack)-webpack
  • 硬币翻转问题,区间操作
  • 阿里云服务器购买完整流程
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​批处理文件中的errorlevel用法
  • ​虚拟化系列介绍(十)
  • #HarmonyOS:Web组件的使用
  • (1)Android开发优化---------UI优化
  • (1)bark-ml
  • (6)添加vue-cookie
  • (arch)linux 转换文件编码格式
  • (SpringBoot)第二章:Spring创建和使用
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (三)终结任务
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Mysql的优化设置
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core 中插件式开发实现
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • /usr/bin/env: node: No such file or directory
  • @JoinTable会自动删除关联表的数据
  • @Transactional类内部访问失效原因详解
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [Android] 修改设备访问权限