CF1746D

Solution :

{\rm s}(x) 表示 x 的儿子数量

因为对于u的两个儿子的量 g_v,g_{v'},|g_v-g_{v'}| \leq 1,因此 \begin{aligned}\forall v, g_{v} \in \{\lfloor\frac{g_u}{ {\rm s}(x)}\rfloor, \lceil\frac{g_u}{{\rm s}(x)}\rceil\}\end{aligned},对于 g_u 又有两个取值,因此 g_v 一共有 4 个可能的取值。由 \begin{aligned}\lfloor \frac{a}{bc}\rfloor = \lfloor \frac{\lfloor \frac{a}{b} \rfloor}{c} \rfloor\end{aligned} 等结论可以证明(也可以不用) 上述上述四个取值 ⌊x/num⌋, ⌈x/num⌉, ⌈(x+1)/num⌉,⌊(x+1)/num⌋ 只有两种可能。因此进行\rm dp的总状态量是 O(n) 的。

标记为f_{u,0},f_{u,1},设{\rm dp}_{u,0/1}表示u子树内按照下/上取整时(量为f_{u,0/1})的最大收益。

设一共要取 a1b0 , 考虑 {\rm dp}_{v}, {\rm dp}_{v'} 两者分别取 0, 1 ,如果交换两者的选择更优,当且仅当 {\rm dp}_{v,1}+{\rm dp}_{v',0}>{\rm dp}_{v',1}+{\rm dp}_{v,0},即 {\rm dp}_{v,1}-{\rm dp}_{v,0} 更大的优先级更高(选择 1),直接排序即可。

那么转移只需要满足 \begin{aligned}\sum_{}f_{v,x}=f_{u,i}\end{aligned} 就可以了,倒序枚举 j 使得 j\times f_{v,1}+({\rm s}(x) - j)\times f_{v,0} = f_{u,i},就是需要的 1 的数量。

CF1735E

Solution :

考虑钦点两个屋之间的距离 L ,得到这个 L 首先有个比较朴素的暴力,可以枚举 \rm d_{1,i}, d_{2,j} 进行匹配,匹配量是 O(n^2) 的。但是显然如果有解,那么每一个 d_{1,i} 一定能匹配一个 d_{2,j} ,那么强行让 d_{1,1} 做匹配:假设屋的坐标分别是 x,y ,那1这个建筑有 3 种可能:[0,x],(x,y),[y,\rm lim],对于左右两种,就是 |d_{1,1}-d_{2_i}|,中间这种就是 d_{1,1}+d_{2,j},这样就把可能的距离限制为了 2n 种。

假设现在枚举的钦点距离是x,如何判断当前距离合法?

d_{1,1} 是左边的屋,那跟他做匹配的 d_{2,j} 一定在他的右边。如果某点跟 1,1 的距离比跟 2, j 的距离小并且和 2,j 的距离大于 x 显然这个点在 1, 1的左边;如果某点与 1, 1 2, j 的距离和为 x 显然这个点在中间;如果某个点跟 2,j 的距离小于跟 1, 1 的距离,并且和 1,1 的距离大于 x 显然这个点在 2, j 的右侧。

直接把最左侧的点设为0坐标即可。

树上问题 dp 暴力 构造 数论分块 贪心

一类数列的求和方法
上一篇 «
2022.10.15补
» 下一篇
© 2017 - 2024 云雀.
...... visits · ...... visitors