\(\mathscr{Summary}\)

  名副其实的 trash round,希望以后没有了。

  A 题算好,确实一个比较关键的简化状态的点没想到,所以只拿了暴力(不考虑 \(\mathcal O(n^4)\) 能操过更多分的情况,明明 \(\mathcal O(n^4)\) 和 \(\mathcal O(2^n)\) 是一档的。)

  B 题签到,C 题倍增 + 分治 NTT 你开 \(10^6\) 我确实 ,要不是 \(10^5\) 分多我甚至懒得写。

\(\mathscr{Solution}\)

\(\mathscr{A}-\) Good

  给定 \(\{a_n\},\{w_n\}\),每次可以在 \(\{a_n\}\) 中删去一个先升再降相邻差 \(1\) 的子串,删去长度为 \(l\) 的子串的收益为 \(w_l\)。求经过任意次操作获得的最大收益。

  \(n\le400\)。


  联系 \(n\) 的范围猜测是区间 DP,所以先莽一个 \(f(l,r)\):把 \(a_{l..r}\) 删干净的最大收益(求出 \(f\) 之后可以再 DP 一下求答案)。注意“子串”成为“子序列”,能够划分子问题,所以自然想到转移时去讨论 \(a_l\) 被怎样的操作删除。

  这一点比较巧妙,也算是一个“删子串”转移的 trick:如果删除 \(a_l\) 时没有一起删除 \(a_r\),那么 \(a_{l..r}\) 本身就能分成两段独立转移,所以我们只需要考虑 \(a_l\) 和 \(a_r\) 一起被删掉的操作。

  接下来就简单了。定义 \(g(l,r)\) 表示从 \(a_l\) 出发升序删子序列删到 \(a_r\) 所划分出的子问题 \(f\) 的最大和;\(h(l,r)\) 则为降序删子序列。那么

\[f(l,r)=\max_{i\in[l,r)}\{f(l,i)+f(i+1,r)\}+\max_{i\in[l,r]}\{g(l,i)+h(i,r)+w_{2a_i-a_l-a_r+1}\},\\
g(l,r)=\max_{i\in[l,r),a_i+1=a_r}\{g(l,i)+f(i+1,r-1)\},\\
h(l,r)=\max_{i\in(l,r],a_i+1=a_l}\{f(l+1,i-1)+h(i,r)\}.
\]

\(\mathcal O(n^3)\) 转移即可。

\(\mathscr{B}-\) Color

  给定含有 \(n\) 个点 \(m\) 条边的连通无向图,结点 \(u\) 有颜色 \(c_u\)。每次修改一个结点的颜色,修改后求出异色结点间的最短路。

  \(n\le2\times10^5\),\(m\le3\times10^5\),边权非负。


  显然最短路一定是一条边;显然只有 MST 上的边有用;显然可以 \(\mathcal O(q\log n)\) 在树上做。

\(\mathscr{C}-\) Music

  给定 \(\{v_n\}\),求序列 \(S=\{s_n\}\) 的个数,使得 \(1\le s_i\le v_i\),且 \(S\) 没有 border。

  \(n\le10^6\),\(v_i\le v_{i+1}\)。


  注意 \(v_i\le v_{i+1}\) 这个限制告诉我们,对于 \(S\) 的任意一个 \(|S|/2\) 以内的前缀,我们可以让它成为 border。所以不难设计出基于此的暴力 DP,令 \(f(i)\) 表示仅考虑 \(s_{1..i}\) 的答案,\(p_i=\prod_{j=1}^iv_j\),那么

\[f(i)=p_i-\sum_{j=1}^{i/2}\frac{f(j)}{p_j}\cdot p_{i-j}.
\]

  发现这是一个很像卷积的东西,但是它要求 \(p(x)\cdot q(x)\) 时,\(p\) 取出的 \(x\) 指数不小于 \(q\) 取出的 \(x\) 指数。从分治乘法的角度考虑,显然所有左端点不为 \(1\) 的区间无法内部转移,所以分治实质上是一个倍增。随便写写画画可以设计这样一个倍增方法:

我们想要求 \(f\) 的灰色部分;红线是当前的中点,橙线是右半部分的中点。黄色连线可以直接卷,蓝色连线递归处理做上文提及的特殊卷积。特殊卷积的复杂度 \(T(n)=\mathcal O(n\log n)+2T(n/2)=\mathcal O(n\log^2n)\),总复杂度 \(F(n)=T(n)+F(n/2)=\mathcal O(n\log^2n)\)。这个 \(10^6\) 带俩 \(\log\) 跑多项式?我的笔记本也是超神只用 \(0.7\text s\) 跑大样例,总之这就是正解,我也想问候出题人。

Solution Set -「LOCAL」冲刺省选 Round XXIV的更多相关文章

  1. Solution Set -「LOCAL」冲刺省选 Round XXV

    \(\mathscr{Summary}\)   读错题了读错题了 B 题差点没做出来真的太吓人了.   逆序开题,C 题直接冲一发暴力最大权闭合子图居然过了.A 题确实一下子没想到用"可能的 ...

  2. Solution Set -「LOCAL」冲刺省选 Round XXIII

    \(\mathscr{Summary}\)   有一说一,虽然我炸了,但这场锻炼心态的效果真的好.部分分聊胜于无,区分度一题制胜,可谓针对性强的好题.   A 题,相对性签到题.这个建图确实巧妙,多见 ...

  3. Solution Set -「LOCAL」冲刺省选 Round XXII

    \(\mathscr{Summary}\)   和出题人很有缘分但是没有珍惜.jpg   A 题有一个显然的二维偏序斜率式,以及显然的 CDQ 套李超树 \(\mathcal O(n\log^2n)\ ...

  4. Solution Set -「LOCAL」冲刺省选 Round XXI

    \(\mathscr{Summary}\)   省选几个小时啊,怎么模拟赛只打三个小时啊./kk   时间安排较为合理,没有出现严重的因思考时间过少引起的丢分.   A 题比较可惜,二分 + 点分治大 ...

  5. Solution -「LOCAL」过河

    \(\mathcal{Description}\)   一段坐标轴 \([0,L]\),从 \(0\) 出发,每次可以 \(+a\) 或 \(-b\),但不能越出 \([0,L]\).求可达的整点数. ...

  6. Solution -「LOCAL」画画图

    \(\mathcal{Description}\)   OurTeam.   给定一棵 \(n\) 个点的树形随机的带边权树,求所有含奇数条边的路径中位数之和.树形生成方式为随机取不连通两点连边直到全 ...

  7. Solution -「LOCAL」充电

    \(\mathcal{Description}\)   给定 \(n,m,p\),求序列 \(\{a_n\}\) 的数量,满足 \((\forall i\in[1,n])(a_i\in[1,m])\l ...

  8. Solution -「LOCAL」二进制的世界

    \(\mathcal{Description}\)   OurOJ.   给定序列 \(\{a_n\}\) 和一个二元运算 \(\operatorname{op}\in\{\operatorname{ ...

  9. Solution -「LOCAL」大括号树

    \(\mathcal{Description}\)   OurTeam & OurOJ.   给定一棵 \(n\) 个顶点的树,每个顶点标有字符 ( 或 ).将从 \(u\) 到 \(v\) ...

随机推荐

  1. centos7 单用户模式修改root密码

    1. 在虚拟机重启客户机后.会出现下面进入界面.按e键 2.按了e键后,会出现下面的界面.此时按↓键.找到linux16 3.将光标移动到UTF-8后面,添加init=/bin/sh,并按 ctrl  ...

  2. MySQL常用内置函数整理

    [1]@@datadir 函数作用:返回数据库的存储目录构造SQL语句 select @@datadir;ps:@@basedir返回mysql的根目录[2]@@version_compile_os ...

  3. 【Java】成员变量赋值执行顺序

    程序中成员变量赋值的执行顺序

  4. elasticsearch拼写纠错之Term Suggester

    一.什么是拼写纠错 拼写纠错就是搜索引擎可以智能的感知用户输入关键字的错误,并使用纠正过的关键字进行搜索展示给用户:拼写纠错是一种改善用户体验的功能: elasticsearch提供了以下不同类型的s ...

  5. Ubuntu下使用VS Code创建Spring Boot工程

    目的 我们将在Ubuntu桌面系统下,使用VS Code(Visual Studio Code)编辑器从零开始创建一个Spring Boot工程,并实现一个简单的RESTful风格接口.使用这套流程的 ...

  6. deepin20体验

    现在Ubuntu20吊打deepin20 100条街.撑了20天受不了deepin 优点 开机启动设置简单,即使不是应用商店的应用也很好 deepin仓库不用代理也很快.,而且有些Ubuntu下载不了 ...

  7. Collection类集

    1.Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的 ...

  8. 在3G移动通信网络信令流程里获取用户电话号的一种方法(中国电信cdma2000)

    首先这些关于电话号的的寻找都是在分组域进行的 然后是首先在rp接口的A11接口寻找,没有看到,于是到pi接口,研究radius协议 发现在协议里也不含有与用户电话号码mdn相关的元素 然后偶遇一篇文档 ...

  9. 无缓冲文件IO和目录操作

    引言 在后台开发中,对于文件I/O我们通常不使用C语言封装的fopen.fread.fwrite标准I/O,而是直接使用Linux提供的系统调用函数.因为这些系统调用没有使用用户缓冲区,我们直接与内核 ...

  10. QT之键盘事件

    Widget.h: #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QKeyEvent> #incl ...