传送门:
hdu5639
bzoj3130
bzoj3716
hdu5639
关键性质:
“每次只能选出基环树/树”相当于给无向边定向,使得每个点出度
≤
1
\leq 1
≤1。
二分答案跑最大流即可。
bzoj3130
推推式子发现最优答案是流量最大的边的流量
×
P
\times P
×P。
于是二分边容量上限即可。
(注意流量是实数)
bzoj3716
最小割做法不解释(最大权闭合子图问题)。
考虑最小割的对偶问题最大流:
等价于保安点喷出
b
v
i
bv_i
bvi单位的水,每个珠宝点可以储
a
v
i
av_i
avi单位的水。保安点喷出的水只能由指定范围内的珠宝点储存。最大流即最多可以喷出多少单位的水且由珠宝点储存。
由于喷射范围的有序性,可以将所以点先拉伸坐标系使得视野呈直角。
然后再45度旋转。
将所有点按 x x x排序后只需要用set维护 y y y值。扫到保安点时set查找 ≤ y i \leq y_i ≤yi的 y y y最大的珠宝点接水(接满了就找第二大的解,贪心处理)即可。