【POJ 1149】 Pigs 最大流

大意是这样的:

· 有 个猪圈(≤ 1000),每个猪圈里初始时有若干头猪。

· 一开始所有猪圈都是关闭的。

· 依次来了 个顾客(≤ 100),每个顾客分别会打开指定的几个猪圈,从中买若干头猪。

· 每个顾客分别都有他能够买的数量的上限。

· 每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。

    问总共最多能卖出多少头猪。


看过之后,参考了网上的思路才明白的。


只能感叹一句:最大流要在图上做,可是,图在哪儿啊,图在哪儿啊。。有时候建立出来图了,发现自己建立的图

 

思路 :

 

如果一个顾客打开了一个没有被打开过的猪舍,则从源点发出一条容量为该猪舍中猪的头数的边。

如果一个顾客打开了一个已经打开过的猪舍,则从上一个打开该猪舍的顾客向该顾客添加一条容量为无穷大的边。

然后,每个顾客都有一条流向汇点的边,容量为该顾客要买的猪要数量。

 

求出最大流即可。

 

用的以前写的SAP邻接表模板,0MS

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值