\(\mathscr{Summary}\)

  状态还行叭。

  A 题又犯坏习惯,走起来就大力分讨,上了个厕所之后冷静一下开始寻找比较普适性的 DP 状态,然后几乎就切掉了,可惜复杂度写假了没发现(已经预处理过的前缀和一个一个加,笑死)。

  B 题的解法暗示性很强,随便猜一个结点出来套路性 DFS 树就好,比较迅速。

  C 题骗的时候就走得有点偏,问题没有抽象清楚,虽然有暴力分,但和正解毫不相关。这个正解确实太神奇了。

\(\mathscr{Solution}\)

\(\mathscr{A}-\) Sequence

  给定 \(n,k,m,\{a_m\}\),\(\{a_m\}\) 的值域是 \(U=[1,k]\cap\mathbb N\)。定义值域也是 \(U\) 的序列 \(\{b_n\}\) 是好的,当且仅当它存在一个长度为 \(k\) 的子序列不含重复元素。求在所有的 \(\{b_n\}\) 中,\(\{a_m\}\) 作为连续子序列的出现次数。

  \(m\le n\le2.5\times10^4\),\(k\le400\)。


  首先,光是 \(\{a_m\}\) 就能让 \(\{b_n\}\) 合法的情况直接判了。

  出现次数,还允许重复,\(n\) 也不大,所以先直接枚举出现位置。设现在 \(\{a_m\}\) 左边还能加 \(l\) 个元素,右边还能加 \(r\) 个元素。注意到若 \(\{a_m\}\) 包含重复元素,左边和右边出现合法段(使 \(\{b_n\}\) 合法的段)的情况是互不影响的,不可能存在跨过 \(\{a_m\}\) 的合法段。稍微抽象一下可以得到这样一个 DP 问题:

  给定一个确定的,长度为 \(j\) 的子序列 \(\{c_j\}\),在其后面添加 \(i\) 个元素,使得 \(\{c'_{i+j}\}\) 合法,我们记这样的添加方案数为 \(f(i,j)\),特别地,\(f(i,k)=k^i\)。转移显然有

\[f(i,j)=(k-j)f(i-1,j+1)+\sum_{t=1}^jf(i-1,t).
\]

可以 \(\mathcal O(nk)\) 得到。两边方案数小小容斥一发就能求到 \(\{a_m\}\) 包含重复元素时的方案。

  不包含重复元素,注意到此时 \(m<k\le400\),所以可以大力钦定几个位置让它出现重复,规约到前一种情况。具体地,设在 \(\{a_m\}\) 前面添加了第 \(i~(i+m\le k)\) 个元素时,这个元素与它后面的第 \(j\) 个重复,且前 \(i-1\) 个元素都没有产生重复。枚举此处的 \(i,j\),在这种情况下,令 \(\{t_{i+m}\}\) 表示添加得到的序列,那么其最长不重复前缀长度为 \(p=j\),最长不重复后缀长度为 \(q=i+m-1\),结合已经枚举的 \(l,r\),此处方案数为

\[+f(l-i,p)k^r+f(r,q)k^{l-i}-f(l-i,p)f(r,q),
\]

注意 \(i-1\) 个不产生重复的元素还会产生 \((k-m)!/(k-m-i+1)!\) 的系数,记得乘上。

  现在算法复杂度是 \(\mathcal O(nk^2)\),优化很显然:上式对 \(j\) 求和的部分可以滚前缀和。因此最终复杂度为 \(\mathcal O(nk)\)。

\(\mathscr{B}-\) Graph

  给定含有 \(n\) 个结点 \(m\) 条边的强连通有向图,若 \(u\) 到任意结点 \(v\) 都有且仅有一条简单路径,则称 \(u\) 是好的。求出所有好的结点 \(u\)。

  多测,\(\sum n\le10^5\),\(\sum m\le2\times10^5\),保证每个图中至少有 \(20\%\) 的好点。


  判 \(u\) 好不好:DFS 一遍,每个访问到的已被遍历过的结点都必须在当前的递归栈内。

  从 \(20\%\) 的条件入手,不要白不要嘛,随便猜几次得到一个好点 \(r\)。这个“好”字对 \(r\) 的限制非常强,分析一下可知:\(r\) 为根的 DFS 树唯一,且仅存在外向树边和返祖边。

  以此为基础,判断其他结点的好不好。对于 \(u\neq r\),如果 \(u\) 子树内包括两条及以上到 \(u\) 严格祖先的返祖边,显然 \(u\) 不好;否则 \(u\) 子树内必然存在恰好一条到 \(u\) 严格祖先的返祖边(图强连通),如果这个祖先好,\(u\) 就好,否则 \(u\) 就不好。画画图比较明显。

  DFS 一遍求出最浅返祖边和次浅返祖边,再 DFS 一遍判断即可。复杂度 \(\mathcal O(\sum m)\)。

\(\mathscr{C}-\) Shape

  Cov. 「CF 1290F」Making Shapes; my solution.

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

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

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

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

    \(\mathscr{Summary}\)   名副其实的 trash round,希望以后没有了.   A 题算好,确实一个比较关键的简化状态的点没想到,所以只拿了暴力(不考虑 \(\mathcal ...

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

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

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

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

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

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

  6. Solution -「LOCAL」过河

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

  7. Solution -「LOCAL」画画图

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

  8. Solution -「LOCAL」充电

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

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

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

  10. Solution -「LOCAL」大括号树

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

随机推荐

  1. Syncfusion宣布开源其为.NET MAUI开发的14个控件

    .NET MAUI是Xamarin.Forms的进化版,增加了对构建桌面应用的支持..NET MAUI的特点包括统一的框架.对桌面应用的支持.性能改进.使用现代技术以及开源特性.开源 .NET MAU ...

  2. Python获取jenkins job信息

    pip install Python-jenkins  如果只是想获取到jenkins的全局变量(比如job url),使用jenkins全局变量就能做到. https://www.jb51.net/ ...

  3. NOIP2024模拟12:孤帆远影

    NOIP2024模拟12:孤帆远影 听了机房同学的讨论,于是T1死磕冒泡和逆序对做法.最后只得了40pts. 思想对了,但不是自己的做法. 还是要坚持自己想,坚持自己可以想出来,不要被任何人带偏. T ...

  4. LLM应用实战: AI资讯的自动聚合及报告生成

    1.背景 花了整整两天时间,本qiang~开发了一个关于AI新闻资讯的自动聚合及报告生成工具. 本篇记录一下整体的框架和实现原理,并且本着它山之石可以攻玉,本qiang~开放了所有的源码,源码可见如下 ...

  5. 强化学习性能指标之一:以训练的episodes数和训练所需样本数作为评价算法性能的指标

    在强化学习领域,一般都是限定训练的episodes数和训练所需样本数的,也就是说在进行算法性能对比的时候各个算法都是在相同的训练的episodes数和训练所需样本数的,但是如果我们在算法得分数保持相同 ...

  6. 细说MySql索引原理

     MySQL索引   MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 可以类比字典,如果要查"mysql"这个单词,我们肯定需要定位 ...

  7. Cursor使用

    Cursor是一款AI 代码编辑器,官网地址为https://www.cursor.com/,直接在官网下载安装即可,基于VS Code二次开发而来,之所以没有采用插件方式,在官方网站上给出的答案是某 ...

  8. MindSpore-2.4版本中的一些新特性

    技术背景 在前面的一篇博客中我们介绍了MindSpore-2.4-gpu的安装和其中可能出现的一些问题.这里我们在安装完成之后,可以尝试使用一些MindSpore新版本的特性.那么在安装之后,如果是使 ...

  9. php 5.4 var_export的改进

    用 var_export 来将数据存储到 php 配置文件里的时候,发现var_export转出来的变量定义还是 array()这种形式,不能转为[],所以自己写个函数来转换一下,代码如下: < ...

  10. MySQL命令行客户端工具之mycli

    官网: mycli 目前市面上存在各种五花八门的图形界面客户端,如 phpmyadmin,navicat 以及官方的 MySQL Workbench 等等.而在日常工作或者使用中,通过命令连接 MyS ...