摘要:
知其然 不知其所以然 哦哦DAG的最小路径覆盖和二分图的最大匹配 DAG图的最小路径覆盖数=节点数(n)- 最大匹配数(m)注意重新构图有原理一次通过#include#includeusing namespace std;int map[122][122];int fa[122];int v[122];int n;int dfs(int u){ for(int i=1;i<=n;i++) { if(map[u][i]&&!v[i]) { v[i]=1; if(!fa[i]||dfs(fa[i])) { fa[i]=u; return 1; } } } retu... 阅读全文
摘要:
转自http://www.cnblogs.com/jackiesteed/articles/2043934.htmlDAG的最小路径覆盖和二分图的最大匹配DAG的最小路径覆盖是指找最小数目的互相不相交的有向路径,满足DAG的所有顶点都被覆盖.首先给出公式:DAG的最小路径覆盖数=DAG图中的节点数-相应二分图中的最大匹配数.那么对应一个DAG,如何构造相应的二分图?对于DAG中的一个顶点p,二分图中有两个顶点p和p',对应DAG中的一条有向边p->q,二分图中有p-q'的一条无向边.二分图中p属于S集合,p'属于T集合.下面我们来解释上面公式为什么成立,思路参考b 阅读全文