题目链接
HDU 5988
分析
这题一看就是一个网络流的模板题,不过需要注意建边的费用!!
首先很容易想到,s与每个区域连一条边,费用为0,容量为 si ,区域与 t 连一条边 容量为 bi 费用为0。然后就是考虑区域与区域之间的连边了。
我们想象一下最终的分配方案,假设对于边 eij 来说,我们让 kij 个人通过,那么 eij 不被破坏的概率是 (1−pij)kij ,整个网络被破坏的概率是
1−∏每条边(1−pij)kij
因此我们需要最大化
∏每条边(1−pij)kij
然而最小费用流,不能干乘积最小这种事,它能干的是线性的目标函数,因此我们对目标函数取一个log
max ∑每条边kijln(1−pij)
将费用取为
−ln(1−pij) 再加一条费用为0,流量为1的边就好了,套一下最小费用流模板
注意
由于花费是浮点数,在spfa里面注意加一个eps防止无限循环…..TLE到死
#include
#include
#include
#include
#include
#include
#include
#include