[二分匹配]poj 3343 against mammoths#+二分答案

该博客介绍了如何运用二分匹配算法解决POJ 3343 Against Mammoths的问题。内容包括人类星球与外星球的飞船数量、距离和增长模型,通过二分答案寻找最少战胜所有外星球所需的时间。代码中展示了二分匹配的实现细节,包括DFS和最大匹配函数,以及边界条件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
[二分匹配]poj 3343 against mammoths#+二分答案
粘个别人的解题报告~~~
有n个人类星球,m个外星球,每个星球上开始sh艘飞船,之后每年会生产p艘飞船,
人类想要战胜所有的外星球,每个人类星球和每个外星球的距离已知(需要耗费k年),
比如在a年初,人类星球H向外星球A宣战,那么人类会带上sh+p*a艘飞船进攻,
经过k年后到达外星球,这时外星球飞船的数量为sh'+p'*(a+k),
如果这时人类飞船的数量>=外星球飞船的数量,那么就会战胜这个外星球,
每个人类星球只能攻击一个外星球,一个外星球只能被一个人类星球攻击,问最少需要多少年人类才能全部战胜所有的外星球。
思路:由于人类星球和外星球是一一对应的关系,所以自然想到了二分匹配,但是时间是未知的,所以可以通过二分答案的途径来确定时间,
对于每个时间k检测人类是否能打败所有的外星球.....输出最小值就可以了,
由于答案是从1<<31-1开始二分的,所以计算过程中可能会超出int范围,故要注意__int64类型的转换。
*/
#include <stdio.h>
#include <string.h>
#include <limits.h&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值