二分图
!
fffefw
这个作者很懒,什么都没留下…
展开
-
hdu 2064(二分图最大匹配)
匈牙利算法求二分图最大匹配 #include<bits/stdc++.h> using namespace std; int line[505][505],used[505],nxt[505]; int k,m,n; bool ifind(int x) { for(int i=1;i<=n;i++)//给x男生找妹子,依次访问所有妹子 { ...原创 2018-07-28 16:36:46 · 252 阅读 · 0 评论 -
poj2060 Taxi Cab Scheme - 最小路径覆盖
有m个订单,然后每个订单都有出发时间,起点,终点,然后问你完成这m个订单至少需要多少个出租车,可以这样想,m个订单,最多是m辆出租车,然后假如有一辆出租车第一个订单完成后,到达第二个订单的起点位置的时间<=第二个订单的出发时间-1,那么需要的出租车的数量就-1.由此可以知道需要的最少出租车数量就是m-最大匹配数。然后建图的时候注意一下就行了 最小路径覆盖=顶点数-最大匹配 很...原创 2018-07-28 21:44:22 · 211 阅读 · 0 评论 -
poj3041(最小点覆盖)
题目问的是使用武器一次可以摧毁一行或一列的陨石,最少使用多少次?这个是求最小点覆盖的问题,也就是问最少多少点可以覆盖所有的边。 然后最小点覆盖又可以等于二分图的最大匹配,所以就建图求最大匹配 这题 建图的用的陨石的x坐标和y坐标,把陨石的x坐标集合和y坐标集合作为2个点集,然后把每一个陨石对应的x,y连接,比如一个陨石(2,7),那么2加入点集1,7加入点集2,然后连接2和7. ...原创 2018-07-29 08:37:54 · 1058 阅读 · 0 评论 -
poj2226(最小点覆盖)
这题和poj3041有点类似,但是建图方式却不是一样的,因为这题要求放的板子不能覆盖了草。 样例是这样的,下面就讲讲怎么建图 4 4 *.*. .*** ***. ..*. 把行里面连在一起的坑连起来视为一个点,即一块横木板,编上序号,Sample则转化为: 1 0 2 0 0 3 3 3 4 4 4 0 0 0 5 0 需要的板子数为u 再一列一列的操作一次,需要的板子数是v 1 0 ...原创 2018-07-29 11:35:05 · 401 阅读 · 0 评论