二分图的最小顶点覆盖数=最大匹配数
本题就是求最小顶点覆盖数的。
?
每个任务建立一条边。
最小点覆盖就是求最少的点可以连接到所有的边。本题就是最小点覆盖=最大二分匹配数。
?
注意一点就是:题目说初始状态为0,所以如果一个任务有一点为0的边不要添加。因为不需要代价
?
#include#include #include #include using namespace std; const int MAXN = 110; int uN,vN; int g[MAXN][MAXN]; int linker[MAXN]; bool used[MAXN]; bool dfs(int u){ int v; for(v=0;v 0&&v>0) g[u][v]=1; } printf("%d\n",hungary()); } return 0; }
?