Dining(POJ-3281)【最大流】

题目链接:https://vjudge.net/problem/POJ-3281

题意:厨师做了F种菜各一份,D种饮料各一份,另有N头奶牛,每只奶牛只吃特定的菜和饮料,问该厨师最多能满足多少头奶牛?

思路:(图论的题是真的灵活!!)我自己做这道题时,知道要用网络流,但怎么也想不到要怎么建图,我没法解决的一个最大的问题就是没法限制每头奶牛最多只吃一份菜和一份饮料。

  看了题解恍然大悟。可以为每头奶牛设立两个节点,再设立F个菜节点和D个饮料节点,以及超级源点、超级汇点各一个。

  1.首先由源点向F道菜建容量为1的边,

  2.再根据题意由菜向奶牛加边,

  3.再由每头奶牛向对应的本身节点建容量为1的边,!【解决了限制每头奶牛最多只吃一道菜和一种饮料的问题】

  4.接着由奶牛向D种饮料根据题设建容量为1的边,

  5.由饮料向汇点建容量为1的边。

  再求最大流即可。  

posted @ 2019-10-31 18:48  xxmlala  阅读(24)  评论(0编辑  收藏