poj3281专题

poj3281 DINIC

如题:http://poj.org/problem?id=3281       初学最大流.     这题重要的是图的构建。源点-》食物-》牛-》牛-》饮料-》汇点。0是源点,1-f食物,f+1-f+1+n食物到牛,f+1+n-f+1+2*n牛到牛,f+1+2*n-f+1+2*n+d牛到饮料,f+1+2*n+d+1最终汇点。       按照上面建图,用DINIC算法求最大流

poj3281-二分图-最大流

题意就是给N头牛,F个食物,D个饮料,每头牛喜欢的食物和饮料各不相同。一头牛需要吃到饭和饮料才能满足,问你最多满足多少头牛。 其实二分图难的并不是算法,而是其构图过程。 如果是简单的分配食物直接用二分图匹配就行,但现在要同时给一头牛分配饮料和食物,我们可以通过题目中给的信息,先画出来牛与食物和饮料的关系图。如图: 看到这个图大家可能有一点感觉了,这在加一个s, t不就是一个求权值为1的最大流