[vp]ARC073

提交记录

(A.)线段求并,而且线段长度一样,乱做即可。

(B.)考虑到只有四种不同的体积且连续。
所以设(large f_{i,j,k})表示前(large i)个物品取了(large k)(large -w_1)的和为(large j).
(large j)只要枚举到(large 3n)
(large f_{i,j,k}=max(f_{i-1,j-(w_i-w_1),k-1},f_{i-1,j,k} ))

(C.)
分类讨论。
考虑只有(4)种情况:
(1.) (R_{mx}=Max,R_{mn}=Min)
(2.) (R_{mx}=Max,B_{mn}=Min)
(3.) (B_{mx}=Max,R_{mn}=Min)
(4.) (B_{mx}=Max,B_{mn}=Min)
其中(1.2)(3.4)等价。
考虑(1):
其中(R)可以放任何数。(B)中的数在(B_{mx},B_{mn})之间。
排个序讨论一下。(2)情况类似。

(D.)

(f_{i,x})为第(i)次操作后有一个人位置在(x)的最小答案。
那么

[large f_{i,x}=f_{i-1,x}+|p_i-p_{i+1}| ]

[large f_{i,p_{i-1}}=f_{i-1,x}+|x-p_{i}| ]

考虑线段树优化。
上面一个式子是个全局加。
下面一个先拆绝对值:

[large f_{i,p_{i-1}}=f_{i-1,x}+x-p_{i} (x>p_i) ]

[large f_{i,p_{i-1}}=f_{i-1,x}-x+p_{i} (x<p_i) ]

线段树上维护(f_x+x)(f_x-x)的最大值即可,支持区间查询。

原文地址:https://www.cnblogs.com/Xxhdjr/p/15431020.html