最小割中的二选一问题

最小割中的二选一问题

对于处理网络流二选一问题,我们常常采用最小割算法进行求解。

P2057 [SHOI2007] 善意的投票 / [JLOI2010] 冠军调查

幼儿园里有 nn 个小朋友打算通过投票来 决定睡不睡午觉。

对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神。

虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以投和自己本来意愿相反的票。

我们定义一次投票的冲突数为好朋友之间发生冲突的总数加上和所有和自己本来意愿发生冲突的人数。

我们的问题就是,每位小朋友应该怎样投票,才能使冲突数最小?

对于这个问题,我们的建图方式是:建立源点S(表示同意睡午觉)和汇点T(表示不同意睡午觉)。然后对于每一对朋友i和j,i向j连一条容量为1的边,j向i连一条容量为1的边。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5JuMM6mH-1666714892539)(C:\Users\Henry\AppData\Roaming\Typora\typora-user-images\image-20221025221039569.png)]

至于为什么朋友之间应该连双向边,我的解释:

如果只连接从左到右的单向边,会忽略如图的情况:尽管A的入边和A出边对应的出边都被割掉了,但是仍然有A->B->C->A的冲突没有解决,实际上说,这就是A选择了不同意,B选择了同意,C选择了同意,A和C的矛盾就靠双向边来计算。

在这里插入图片描述

P1361 小M的作物

小 M 在 MC 里开辟了两块巨大的耕地 AA 和 BB(你可以认为容量是无穷),现在,小 P 有 nn 种作物的种子,每种作物的种子有 11 个(就是可以种一棵作物),编号为 11 到 nn

现在,第 ii 种作物种植在A中种植可以获得 a_ia**i的收益,在 BB 中种植可以获得 b_ib**i 的收益,而且,现在还有这么一种神奇的现象,就是某些作物共同种在一块耕地中可以获得额外的收益,小 M 找到了规则中共有 mm 种作物组合,第 ii 个组合中的作物共同种在 AA 中可以获得 c_{1,i}c1,i 的额外收益,共同种在 BB 中可以获得 c_{2,i}c2,i的额外收益。

小 M 很快的算出了种植的最大收益,但是他想要考考你,你能回答他这个问题么?

建图方式:

对于二选一问题,我们常用的建图思路:

在这里插入图片描述

对于x,y之间若有依赖关系的话,我们可以建立新的虚电来描述额外的需要割掉的边:

在这里插入图片描述

然后我们求出的最小割对应的是非最优收益,因此我们用总收益减去非最优收益便可以得到最优收益了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值