闲话 23.2.20
闲话
人的喜好并不相同 而且多次安利无果
大概是人生经历不同所导致的?
没必要多提及其实 互相理解就是最好的
翻其他人切的黑题来着
好像……点一个我就没写过?
好吧 我还是拉
今天放了第三心脏!
好听!
我仍然可以无压力跟唱全曲(
soytony 问我献上心脏咋比划
我回答我没看过巨人
其实有一部分霸权番(?)因为和我的口味不是很搭
我就从没看过
比方说骨王/坂本/紫罗兰
我也说不清我口味咋样 但是我的确没碰到“想看”的想法浮现
今日推歌:0verf1ow - FUZI × Neru (feat. Luschka & Panaman)
听起来很舒服(
ABC290
打的稀烂
三发罚时 为什么两发在 C 一发在 D 啊
感觉代码能力有很大提升空间
C 是一发卡在了数组上,另一发最后输出了 n 而不是 ptr
D 是没开 ll nnd
E
场上疯狂枚举中点 然后根本没法做
考虑枚举一对位置 \((i, j)\),如果 \(a_i \neq a_j\) 则这个位置被计入 \(\min(i, n - j + 1)\) 次贡献。这个似乎不是很好做,因此我们考虑枚举所有的位置以及它们的贡献,再减去 \((i, j) \text{ s.t. } a_i = a_j\) 的贡献。这个就好做多了。
我们可以分离不同取值的 \(a\),来看 \(S = \{ i : a_i = k \}\) 对答案的贡献。假设 \(S = \{s_1, s_2, \dots, s_m\}\)。我们需要的就是 \(\sum_{i < j} \min(s_i, n - s_j + 1)\)。
考虑双指针维护这个,初始化 \(l = 1, r = m\)。假设 \(s_l < n - s_r + 1\),则对任意 \((l, k) \text{ s.t. }l < k \le r\) 都有这个的取值是 \(s_l\),我们只需要让答案增加 \((r - l)\times s_l\) 后令 \(l\) 自增即可。反之有相同的处理。
总时间复杂度 \(O(n)\)。
F
多项式
考虑一个序列 \(\left\langle a_i\right\rangle\),其中 \(\sum [a_i = 1] = k\)。最优的构造就是让所有度数大于 \(1\) 的点连成一条链,然后把叶子都挂在上面。假设度数大于 \(1\) 的点的数量是 \(k\) 个,则直径长度是 \(k + 1\)。我们首先选出这 \(k\) 个点,然后需要将 \(n - 2\) 的度数分配到这 \(k\) 个点上,且每个点至少被分配到一度,插板法得到
可以 \(O(n + T)\) 求解。
G
APJifengc 老师场上 hack 了 \(O(Td)\) 的做法 太强了
我们考虑枚举最终需要的树的最高节点,假设它深度是 \(dep\)。如果 \(dep < d\) 则需要删除到父亲的边,答案加一,反之不加。
然后考虑向下递归,每层先让 \(x\) 自减,随后考虑在其中可以删掉几个当前子树的大小。如果正好可以被 \(i\) 个子树拼凑则答案加 \(k - i\) 后返回,反之若最多加入 \(i\) 棵子树则答案加 \(k - i - 1\),\(x\) 减去 \(i\) 棵子树的大小,接着递归。
总时间复杂度 \(O(Td^2)\)。证明可以看 editorial 2。
Ex
看题解好像有 \(O(n\log n + m \log m)\) 做法。看不懂日语(
考虑先随便构造一个序列,然后向更优的情况调整。
首先我们可以在猫和狗内部调整。由于最终的 \(|x - y|\) 一定先降再升,更大的 \(a_i, b_i\) 一定会向中间靠拢,以得到 \(a_i \times |x - y|\) 最小。因此最后的序列中猫/狗内部的序列排布应当是先升再降的。
然后考虑序列形如 \((1) \mid (2) \mid (3)\),其中两个 \(\mid\) 对应着两个最大值所在的位置。对于 \((2)\),讨论可得当一种动物两侧都是不同动物时一定不更优,因此最终这一部分一定形如 \(|aaa\dots bbb|\)。其实最终题解证明了这一部分长度最多为 \(2\),猫和狗分别最多存在一个,\((1)\) 和 \((3)\) 中分别有猫狗 \(\lfloor n/2\rfloor, \lfloor m/2\rfloor\) 个。这里的猫狗定是最大权的那一个,因此我们可以删除猫/狗为奇数个时的最大值,对应处理答案即可。
随后我们只需要考虑 \((1)\mid(3)\)。我们可以对 \((1)/(3)\) 分别讨论,得到整个序列的单调性和猫/狗是相同的,\((1)\) 段单升,\((3)\) 段单降(非严格)。这样我们就有了一种 dp 方法。我们可以将猫狗一起排序,从小到大决策该放左侧还是右侧。
设 \(f(i, j, k)\) 为当前插入了 \(i\) 只动物,其中左侧有 \(j\) 只狗,\(k\) 只猫的最小情况,我们可以简单枚举得到转移。
总时间复杂度 \(O(nm(n + m))\)。
看着像方差那题(
以下是博客签名,与正文无关。
请按如下方式引用此页:
本文作者 joke3579,原文链接:https://www.cnblogs.com/joke3579/p/chitchat230220.html。
遵循 CC BY-NC-SA 4.0 协议。
请读者尽量不要在评论区发布与博客内文完全无关的评论,视情况可能删除。