\(\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. MongoDB学习 - 简单使用

    1.项目引入pom依赖 <!-- mongodb --><dependency> <groupId>org.springframework.boot</gro ...

  2. console.log(a)和console.log(window.a)的区别?

    console.log(window.l); //undefined console.log(l); //Uncaught ReferenceError: l is not defined js对于未 ...

  3. 2.16图论专题PB

    超神建图技巧合集 CF1368G 每个骨牌变成让空位移动的至多两条有向边,证明图中无环,形成森林. 然后黑白染色,两类森林互不影响.转为每次标记 A 类一棵子树与 B 类一棵子树形成的所有点对. 再转 ...

  4. python中join()方法介绍

    描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法:str.join(sequence) 参数 sequence -- 要连接的元 ...

  5. web刷题记录 极客大挑战2019Knife upload buy a flag

    极客2019Knife webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理.服务器管理.权限管理等操作.使用方法简单,只需上传一个代码文件,通 ...

  6. .NET SourceGenerators 根据 HTTPAPI 接口自动生成实现类

    目录 摘要 元数据分析 使用 Source generators 实现 使用 Source generators 实现程序集分析 使用方法 SourceCode && Nuget pa ...

  7. yum源 epel源 no package available 更换国内yum源

    有时候安装软件会出现 no package available 解决办法:yum install epel-release 安装完会在/etc/yum.repos.d/目录下下生成两个repo文件: ...

  8. Docker 与 K8S学习笔记(二十)—— 使用Downward API向容器注入Pod信息

    Kubernetes在创建Pod时,会为Pod和容器设置一些额外的信息,比如Pod名称.Pod IP.Node IP.Label.Annotation.资源限制等,我们经常会在应用程序中使用到这些数据 ...

  9. 权限修饰符和final关键字

    public 不受任何限制,可以被其他任何类访问 一个JAVA文件只能包含一个public文件 java将public类作为每个编译单元的数据接口  只能有一个接口 private 只能在自己类中访问 ...

  10. WebAssembly编译

    环境:centos 7.9 1.准备环境 sudo yum install docker sudo systemctl start docker.service sudo docker pull tr ...