/**
[二分匹配]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&
[二分匹配]poj 3343 against mammoths#+二分答案
最新推荐文章于 2021-08-04 15:15:41 发布