HDU1151最小路径覆盖
2016-03-13 14:55
190 查看
DAG图(无回路有向图)的最小路径覆盖
用尽量少的不相交简单路径覆盖有向无环图(DAG)的所有顶点,这就是DAG图的最小路径覆盖问题。
最小路径覆盖数 = 节点数- 最大匹配数
用尽量少的不相交简单路径覆盖有向无环图(DAG)的所有顶点,这就是DAG图的最小路径覆盖问题。
最小路径覆盖数 = 节点数- 最大匹配数
#include <iostream> #include <cstring> #include <cstdio> using namespace std; const int MAXN=200; int linker[MAXN]; int g[MAXN][MAXN]; int used[MAXN]; int n; int dfs(int u) { for(int v=1;v<=n;v++) { if(g[u][v]&&!used[v]) { used[v]=1; if(linker[v]==-1||dfs(linker[v])) { linker[v]=u; return 1; } } } return 0; } int hungary() { int res=0; memset(linker,-1,sizeof(linker)); for(int u=1;u<=n;u++) { memset(used,0,sizeof(used)); if(dfs(u)) res++; } return res; } int main() {int t,k,a,b; cin>>t; while(t--) { memset(g,0,sizeof(g)); cin>>n>>k; while(k--) { cin>>a>>b; g[a][b]=1; } cout<<n-hungary()<<endl; } return 0; }
相关文章推荐
- HTML5的革新——语义化标签
- MySQL双主热备问题处理
- SpringMVC+Mybatis框架整合java源码 maven mysql
- Python分布式学习(2)
- HDU.1019Least Common Multiple【深搜求最小公倍数】(3.13)
- uva104 (DP + floyd)
- python之网络编程学习小结
- 让你的JS更优雅的小技巧
- C语言中的数组和指针以及字符串
- java程序设计基础_陈国君版第五版_第八章例题
- 纯JavaScript在网页上实现”简书“的文章编辑器
- 二、MyBatis的常用基本知识
- 初学者 ffmpeg + SDL2.0 安装与应用概要点
- 线程的创建-4
- laravel开发环境准备
- 第三周项目二-本月有几天?
- C++读取txt文件操作
- RHEL6.4 NFS文件共享服务器搭建
- Xcode中Download的模拟器下载和文档下载
- 模板_点分治