[POJ 1149]PIGS

danihao123 posted @ 2017年2月02日 13:36 in 题解 with tags Dinic POJ 网络流 , 839 阅读
转载请注明出处:http://danihao123.is-programmer.com/

这个题是经典的网络流题目。在经过一次次的思想过滤后你会发现,这个问题的瓶颈(换猪)大可以理解为前面的顾客给后面的留一些不是?这样问题就简单多了。

按顺序整理出到访每个猪圈的顾客,对于到访每个猪圈的第一个顾客,从向其连一条容量为此猪圈中猪的数量的边。然后每个猪圈前面一个顾客要个给后面的留一些猪,这个可以直接连一条容量为无限大的边来表示。

最后每个顾客向连一条容量为其买猪数量上限的边,然后求一遍的最大流,问题得解。

这个题还有一个优化就是,有一些边是可以合并的(比如说从流出的一些边是可能指向同一顾客的,同一对顾客之间的连边数可能不止1条),但是我没有做这个优化,照样A了……

代码:


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter