大家好屑兔子又来啦!


【A - Lexicographic Order】

  说个笑话,\(\color{black}{\text{W}}\color{red}{\text{alkingDead}}\) 和 \(\color{black}{\text{O}}\color{red}{\text{neInDark}}\) 在这题各罚了两次时,我因为不会所以没有被罚。

【B - AtCoder Quiz】不会。

【C - Inverse of Permutation】不会。


【D - Cutting Woods】

  我本来不会的,但上次都是从 D 开始讲的所以就……

  用 std::set 维护切割点,标记 \(x\) 所在段的长度就是它在集合里的后继减去前驱。


【E - Sorting Queries】

  讲个笑话,我以为 std::merge 的复杂度是较短容器的长度。

  基础的势能算法吧,用 std::multiset 维护前缀有序段,用队列维护其他无序元素。进行排序操作时暴力把队列全部塞到 set 里即可。


【F - Make Pair】

  讲个笑话,我一度想要优化一个睿智的 \(\mathcal O(n^4)\) DP。

  看到“相邻配对删除”,应该想到区间 DP,并且利用“在某一时刻相邻而现在不相邻”这一条件将序列划分为独立子问题。

  令 \(f(l,r)\) 表示将区间 \([l,r]\) 内的人全部配对的方案数(那么自然需要 \(2\mid(r-l+1)\))。转移时枚举与 \(l\) 配对的人 \(i\),得到转移

\[f(l,r)=\sum_{i\in(l,r],2\mid(i-l)} \binom{(r-l+1)/2}{(r-i)/2} f(l+1,i-1) f(i+1,r).
\]

其中有边界 \(f(i,i+1)=1\)。组合数对应这个计数场景:“左边有 \(a\) 次操作,右边有 \(b\) 次操作,\((l,i)\) 还有一次配对操作,且必须在左边 \(a\) 次完成后进行”,那么把这一次归类为第 \(a+1\) 次左边操作,方案数即为 \(\binom{a+1+b}{b}\)。复杂度为 \(\mathcal O(n^3)\)。


【G - Groups】

  为什么 G 永远比 F 简单,永远是计数问题,永远存在更优秀的多项式算法。(其实上次就不是。

  还是想象成把球(人)放进盒子(组)里会比较舒服。我们忽略掉题目中要求“盒子相同”“盒子非空”的要求之后,会发现此时的方案数就是组合数的若干次方。具体地,我们能求得 \(f_i\) 表示将这些球放进至少 \(i\) 个盒子里,且非空的盒子本质不同的方案数,有

\[f_i=(A_i^{n/m})^{m-(n\bmod m)}(A_i^{n/m+1})^{n\bmod m}.
\]

其中 \(A_n^m=\binom{n}{m}m!\) 即 \(n\) 个里选 \(m\) 个排列的方案数,\(n<m\) 时值为 \(0\)。

  此后,令答案为 \(g_i\),根据组合意义(我当时随便凑了几个式子过样例就交了√),可以得到 \(g\) 的表达式

\[g_i=f_i-\sum_{j<i}A_i^jg_j.
\]

由于是 ABC,直接递推出这个东西就可以 \(\mathcal O(n^2)\) 求解了。

  不过,显然可以用分治 FFT 优化至 \(\mathcal O(n\log^2 n)\)。我写出来大概是十倍速度。但是最优解貌似是 \(\mathcal O(n\log n)\),仅用一次卷积的做法,有空研究√

  UPD: 谢谢,移项之后就是 \(e^x G=F\) 了,确实可以直接卷,我是屑。


【H - Snuketoon】

  令 \(f_i(x)\) 表示前 \(i\) 次射击后,站在 \(x\) 位置,受到的最小伤害。注意水枪伤害的性质,我们断言 \(f_i(x)\) 的是下凸的。虽然不难证明,但的确是本题的重点。

  所以,可以用两个 std::multiset 维护左半凸壳和右半凸壳的转折点,并保证转折点两侧的斜率差为 \(1\)(所以需要维护重点)。那么转移过程中,我们需要完成一次整体取邻域最小值和叠加一段斜率为 \(\pm 1\) 的一次函数。维护一下就好√

Solution Set -「ABC 217」的更多相关文章

  1. Solution -「ABC 217」题解

    D - Cutting Woods 记录每一个切割点,每次求前驱后驱就好了,注意简单判断一下开闭区间. 考场上采用的 FHQ_Treap 无脑莽. #include <cstdio> #i ...

  2. Diary / Solution Set -「WC 2022」线上冬眠做噩梦

      大概只有比较有意思又不过分超出能力范围的题叭.   可是兔子的"能力范围" \(=\varnothing\) qwq. 「CF 1267G」Game Relics   任意一个 ...

  3. Solution Set -「ARC 107」

    「ARC 107A」Simple Math   Link.   答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...

  4. Solution -「ABC 219H」Candles

    \(\mathcal{Description}\)   Link.   有 \(n\) 支蜡烛,第 \(i\) 支的坐标为 \(x_i\),初始长度为 \(a_i\),每单位时间燃烧变短 \(1\) ...

  5. Solution -「ABC 215H」Cabbage Master

    \(\mathcal{Description}\)   Link.   有 \(n\) 种颜色的,第 \(i\) 种有 \(a_i\) 个,任意两球互不相同.还有 \(m\) 个盒子,每个盒子可以被放 ...

  6. Solution -「ABC 213G」Connectivity 2

    \(\mathcal{Description}\)   Link.   给定简单无向图 \(G=(V,E)\),点的编号从 \(1\) 到 \(|V|=n\).对于 \(k=2..n\),求 \(H= ...

  7. Solution -「ABC 213H」Stroll

    \(\mathcal{Description}\)   Link.   给定一个含 \(n\) 个结点 \(m\) 条边的简单无向图,每条边的边权是一个常数项为 \(0\) 的 \(T\) 次多项式, ...

  8. 「ABC 249Ex」Dye Color

    考虑停时定理. 初始势能为 \(\sum \Phi(cnt_i)\),末势能为 \(\Phi(n)\),我们希望构造这样一个 \(\Phi:Z\to Z\) 函数,使得每一次操作期望势能变化量为常数. ...

  9. Note -「Lagrange 插值」学习笔记

    目录 问题引入 思考 Lagrange 插值法 插值过程 代码实现 实际应用 「洛谷 P4781」「模板」拉格朗日插值 「洛谷 P4463」calc 题意简述 数据规模 Solution Step 1 ...

随机推荐

  1. Linux shc 命令手册

    shc Generic shell script compiler. https://www.linux-man.cn/command/shc/ #Compile a shell script: sh ...

  2. 手机访问web网页,使得显示自适应

    //禁止浏览器伸缩<meta name="viewport" content="user-scalable=0">//手机访问web网页,使得显示自 ...

  3. 智能集成接口:I3 ISA-95 的应用

    介绍 多年来,使用基于制造运营管理 (MOM) 的应用程序的制造 IT 顾问试图说服制造商这些类型的应用的高价值.实时 MOM 解决方案是唯一一组能够精确优化工厂日常运营的 IT 应用程序,可为其可用 ...

  4. Pop Sequeue

    题目描述 Given a stack which can keep M numbers at most. Push N numbers in the order of 1,2,3...,N and p ...

  5. TextBox,RichTextBox设置行高

    /// <summary> /// 设置行距 /// </summary> /// <param name="ctl">控件</param ...

  6. 个人作业2-Java代码实现数据检索并实现可视化

    1.bean实体层 package bean; public class Bean { private String title; private String Abstract; private S ...

  7. spark中job stage task关系

    1.1 例子,美国 1880 - 2014 年新生婴儿数据统计 目标:用美国 1880 - 2014 年新生婴儿的数据来做做简单的统计 数据源:https://catalog.data.gov 数据格 ...

  8. 什么是Filter过滤器

    一,什么是Filter过滤器: JavaWeb三大组件之一 Filter过滤器是JavaEE的规范.也就是接口 Filter过滤器作用:拦截请求,过滤响应 拦截请求常见的应用场景有: 1,权限检查 2 ...

  9. 集合框架-Map集合-LinkedHashMap及关联源码操作

    1 package cn.itcast.p9.linkedhashmap.demo; 2 3 import java.util.HashMap; 4 import java.util.Iterator ...

  10. 使用 Frp 和 Docker 通过远程桌面和 SSH 来远程控制 Windows(反向代理)

    最新博客文章链接 大体思路 使用 Docker 容器,在云服务器上部署 Frps 容器来中转流量,在被控制的 Windows 上部署 Frpc 容器来暴露内网的服务,在主控制端的 Windows 上直 ...