poj1149(最大流,构图较难)

        题目链接:http://poj.org/problem?id=1149

         大意:有M个猪圈,每个猪圈关着一定数量的猪,作为管理员的Mirko,竟然没有猪圈的钥匙,钥匙在哪呢,有N个顾客,每个顾客拿着其中几个猪圈的钥匙(作为管理员没有钥匙,竟然在顾客的手里,有点难以理解啊,但这不是重点),顾客可以在这些猪圈里购买需要数量的猪,当顾客把猪圈打开购买猪后(不会再关掉),Mirko可以任意将某个开着的猪圈里的猪移动到另一个开着的猪圈里,问Mirko该如何做,能够卖出去最多数量的猪。

         解题思路:该题归属于网络流方面的题,难点在于如何构建网络,在网上看到一种很巧妙的构图方法,构图思路如下:

1.取超级源点和超级汇点;

2.当猪圈被第一次打开时,在源点与当前顾客之间连接一条边,容量为该猪圈的猪的头数;

3.当某个猪圈 不是被第一次打开时,在上一个打开该猪圈的顾客与当前打开该猪圈的顾客之间连接一条边,容量为无穷大;

4.在每个顾客与汇点之间连接一条边,容量为该顾客要买猪的头数。

        构图完成后套用Edmonds-Karp算法的模版即可&

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值