摘要:
题目链接:http://poj.org/problem?id=2516思路:考虑某种货物,由于某个订货商可能接受来自不同地区的货物,而某一地区的货物也可能送给不同的订货商,显然不能直接进行匹配,必须拆点,设某个订货商的订货量为k,就应该把该订货商拆成k个点,这样就能最多接受k个地区的货物供应,同理,地区也应该拆成它的存储量个点。然后就是最小权匹配了(这里要进行K次).http://paste.ubuntu.com/5953296/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3686思路:显然工件为X集,机器为Y集合。由于每个机器一次只能加工一个部件,因此我们可以将一台机器拆成N个点,至于部件与机器之间连多大的边权呢?假设N个部件都是有某台机器先后完成的,设加工每个部件的时间分别为t1,t2,t3,...,tn,那么总时间为t1*n+t2*(n-1)+t3*(n-2)+...+tn.于是我们可以对于X中的i,Y中的原机器j对应的拆点后的点(p-1)*i+j(其中1<=p<=n)连边p*k.然后就是KM求最小权匹配了。http://paste.ubuntu.com/5950854/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2195思路:我们都知道KM使用来求最大权匹配的,但如果要求最小权匹配,只需把图中的权值改为负值,求一次KM,然后权值和取反即可。http://paste.ubuntu.com/5949683/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3189思路:由于题目要求最小的差值,而Range最多也才20,因此我们可以枚举上下限,多重匹配验证即可。http://paste.ubuntu.com/5943733/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2594思路:本来求最小路径覆盖是不能相交的,那么对于那些本来就可达的点怎么处理,我们可以求一次传递闭包,相当于是加边,这样我们就可以来求最小路径覆盖了。最小路径覆盖=顶点数-最大匹配。http://www.cnblogs.com/ka200812/archive/2011/07/31/2122641.htmlhttp://paste.ubuntu.com/5943395/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2112思路:由于要求奶牛走的最远距离的最短路程,显然我们可以二分距离,如果奶牛与挤奶器的距离小于等于limit的情况下,能够满足,则在(low,limit-1)中继续二分,否则在(limit+1,high)中寻找,那满足的条件就是根据题目的条件每头奶牛都能找到挤奶器,由于每个挤奶器可以最多挤M头奶牛,因此要求多重匹配。注意点:一开始要Floyd预处理出每头奶牛到挤奶器的最短距离。http://paste.ubuntu.com/5942284/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2226思路:将连续的横向水洼看成X集合中的一个点,连续的纵向水洼看成Y集合中的一个点,而将每个水点看成一条边,它连接了所在的X集合中的点和Y集合中的点,于是问题就转化为求最小点覆盖了。最小覆盖=最大匹配。http://paste.ubuntu.com/5942114/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=1698思路:最大匹配容易想到,关键是如何建图,这里我们可以将电影按需要的天数进行拆点,然后对于可以选择的日子连边,最后只需判断最大匹配数是否等于总天数。http://paste.ubuntu.com/5939771/ 阅读全文
摘要:
题目链接:http://poj.org/problem?id=1548思路:最小路径覆盖是很容易想到的(本题就是求最小的路径条数覆盖所有的点),关键是如何建图,其实也不难想到,对于当前点,如果后面的点它能够到达,那么就连边。最小路径覆盖=顶点数-最大匹配。http://paste.ubuntu.com/5939379/ 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1534思路:设s[i]表示工作i的开始时间,v[i]表示需要工作的时间,则完成时间为s[i]+v[i].于是可以列出下列不等式:FAS a b :b开始之后a结束,s[a]+v[a]>=s[b];FAF a b :b结束之后a结束,s[a]+v[a]>=s[b]+v[b];ASF a b :b结束之后a开始,s[a]>=s[b]+v[b];ASA a b :b开始之后a开始,s[a]>=s[b];从而建图求最长路即可,需要注意的是一开始dist[]初始化为-inf.http: 阅读全文