![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分匹配
taozifish
http://www.daimayu.com/
展开
-
poj 1719 Shooting Contest
//行与列匹配,若ans>=r,则可匹配,无匹配的列任意输出一white square即可。 #include #include #include #include using namespace std; int ans, r, c, linked[1005][1005], match[1005], visited[1005]; void init(){ int i, x原创 2012-02-29 15:07:47 · 313 阅读 · 0 评论 -
poj 2724 Purifying Machine 二分匹配
//最大独立集=总点数-最大匹配/2 //注意判重,判断x1、x2是否连通时,x1^x2为2的指数则连通 #include #include #include #include using namespace std; int n, m, sum, ans; int match[1025], p[1025], p2[11], num[1025]; bool visited[102原创 2012-02-28 21:18:48 · 449 阅读 · 0 评论 -
poj 3216 Repairing Company
//可重复的最小路径覆盖 //先用floyd求传递闭包,最小覆盖数=N-最大匹配数 //若不可重复覆盖,则省去floyd过程 #include #include #include #include using namespace std; int n, m, ans; const int INF=0xfffffff; int match[205], linked[205]原创 2012-03-07 13:10:01 · 359 阅读 · 0 评论 -
poj 2226 Muddy Fields 二分图
//构图很难想,3041的加强版,很经典的构图,横放的所有木板为一个点集,竖放的所有木板为另一个点集,若有交点则连通,求最小点覆盖。 #include #include #include #include #include using namespace std; int R, C, match[1005], linked[1005][1005], visited[1005], an原创 2012-03-26 15:13:20 · 363 阅读 · 0 评论