求最小点覆盖数,即最大匹配数,匈牙利算法。

 #include<stdio.h>
#include<string.h>
int map[][],vis[],linker[];//linker[]记录V2中的点i在V1中所匹配的点x的编号
int n,k;
int dfs(int x)
{
for (int i = ; i <= n; i++)
{
if (map[x][i] && !vis[i])//x到i有边且i点未被标记
{
vis[i] = ;
if (!linker[i]||dfs(linker[i]))//i没有匹配或被i匹配到的点可以找到增广路
{
linker[i] = x;//更新匹配
return ;//匹配成功
}
}
}
return ;//匹配失败
}
int main()
{
scanf("%d%d",&n,&k);
memset(map,,sizeof(map));
memset(linker,,sizeof(linker));
for (int i = ; i <= k; i++)
{
int u,v;
scanf("%d%d",&u,&v);
map[u][v] = ;
}
int cnt = ;
for (int i = ; i <= n; i ++)
{
memset(vis,,sizeof(vis));//清除标记
if (dfs(i))
cnt++;
}
printf("%d\n",cnt);
return ;
}

最新文章

  1. Binder In Native
  2. Proxy setting
  3. addChildViewController相关api深入剖析
  4. let和expr比较
  5. Mysql 修改列的顺序
  6. poj 3026 Borg Maze 最小生成树 + 广搜
  7. Codeforces Round #343 (Div. 2) E. Famil Door and Roads
  8. 关于HashMap根据Value获取Key
  9. Unity monodev环境搭建
  10. linux内核源码阅读之facebook硬盘加速flashcache之六
  11. python encode和decode函数说明【转载】
  12. Linux进程间通信总结
  13. append()常见错误
  14. 版本控制器——Egit使用方法
  15. java基础----&gt;hashMap的简单分析(一)
  16. golang string和[]byte的对比
  17. 不让浏览器缓存index.html
  18. Scrapy Spider MiddleWare 设置
  19. alfred3配置
  20. 20155301 2016-2017-2 《Java程序设计》第7周学习总结

热门文章

  1. CAD把一个DWG文件中的多个图框一次性全部插入到打开的DWG文件中
  2. redis键的过期和内存淘汰策略
  3. nginx+tomcat实现负载均衡集群
  4. 【原】Pchart生成图片
  5. iic通讯 FPGA实现 mpu6050为例
  6. Windows下Unity安装
  7. pop的运用
  8. c++ map: 当map的value是void*指针
  9. web前端学习总结--HTML
  10. 初识 Dubbo