最大权森林·POJ-3723·Conscription

博客探讨如何将招兵问题转化为寻找最大权值森林的问题,解释了最大权值森林的概念,并指出在解决过程中可以将亲密度转化为负数,从而利用Kruskal算法求解最小权值森林。文章提供了AC代码作为解决方案。
摘要由CSDN通过智能技术生成

题目大意:

就是要找n个女兵,m个男兵,每招一个兵的价钱是10000;然后给出男女兵之间的亲密度。亲密度的作用就是用来省钱,就是要找一个兵时,在已招的兵中,有存在与这个兵有亲密度的,这个兵的价格就为10000-max(亲密度)(就是与已招的兵中最大亲密度);

思路:

这边其实最终是要求最大权值森林,然后这边讲一下为什么可以转化成最大权值森林,以及怎么求解最大权值森林。

1.为什么可以转化成最大权值森林?

首先什么是最大权值森林?这是相对于图来说的,而不是相对于树;首先就得把女兵男兵都看成是一个个的节点,之间的亲密度视为两点之间的权值。这样就构成了图。但是这边的图没有说明一定是连同通的,所以现在就不是一棵树了,而是存在连通分量的森林。到这边其实最后问题的答案就转化称为

ans=(n+m)*10000-最大权和;简要的说就是在这边森林里选边的时候是不能构成回路的,因为若1与2,1与3,2与3之间存在亲密度;你只能计算两个,否则就矛盾了,因为这边是计算的是与已招的兵的亲密度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值