5.20 校内模拟

5.20 校内模拟

A

分析一下可以得到同一子树是在一个区间之内,递归算下排列数就行了。

B

暴力可过

考虑下凸包+一条直线仍然是一个凸包,单调栈维护。

C

我有独特的建模方式

两两连边显然是不行的,考虑这样一个转化

$ |x1-x2|=max(x1-x2,x2-x1)$

$ |x1-x2|+|y1-y2|=max(x1-x2+y1-y2,x2-x1+y1-y2,x1-x2+y2-y1,x2-x1+y2-y1)$

我们额外建4个中转点表示上面的四种情况,红球和蓝球通过中转点连边,这样边数降到了O(N)

边权就按照上面四种情况的符号连,容量为1,跑最大费用最大流。

由于最大费用最大流的性质,保证了每个匹配都是最大的,因此恰好就是曼哈顿距离取了绝对值符号后的结果。

猜你喜欢

转载自www.cnblogs.com/lcyfrog/p/12928132.html
今日推荐