\(\mathscr{Summary}\)

  省选几个小时啊,怎么模拟赛只打三个小时啊。/kk

  时间安排较为合理,没有出现严重的因思考时间过少引起的丢分。

  A 题比较可惜,二分 + 点分治大概想了一下就叉掉了,再后来就没再想起二分。骗分的时候 Manacher 又写假了,笑死,字符一定要调整成 ^|a|a|a|a| 的形式,前后的 | 都不能少。

  B 题要是出在所谓“Burnside 算法练习题”里,估计还有挣扎的余地,Burnside 相关的东西确实不熟悉,依靠并不扎实的线代推了一会儿果断暴力 \(16\text{pts}\),问题不大。

  C 题比较舒服,从比题解不知道简单多少的角度猜想并证明了关键结论,由于 Min_25 筛忘得很彻底,而且暴力 \(80\text{pts}\) 非常舒适,所以线性筛写了就走,问题不大。

  表现中规中矩叭。

\(\mathscr{Solutions}\)

  Contest link. (private)

\(\mathscr{A}-\) 我醉

  给定一棵含 \(n\) 个结点的边带权的树,求树上最长回文路径长度。 \(n\le10^5\)。


  分奇数偶数情况分别二分,现考虑检验是否存在长度为 \(L\) 的回文路径。点分治,从分治中心扩展,用长度 \(\ge\lceil\frac{L}2\rceil\) 的一侧路径更新答案。现在问题形如判断 AxBC 是否是回文(其中 \(x\) 指分治中心结点,不是字符;\(|A|=|C|\)),对 \(A\) 维护 hash 桶,对 \(BC\) 动态更新前缀的正向 hash 和反向 hash 即可 \(\mathcal O(1)\) 判断(假定桶为 \(\mathcal O(1)\))。最终复杂度为 \(\mathcal O(n\log^2 n)\),巨大卡常。

  值得一提的乱搞:拆边使得回文中心在点上,从每个点 BFS,保证每个队列里的点都有与之构成回文的点。虽然在所有字符一样等平凡的情况就会 \(\mathcal O(n^2)\),但这种不难写、迎合某竞赛组织数据水、不绑点的尿性的暴力还是有意义的。

\(\mathscr{B}-\) 梧桐依旧

  给定 \(n\) 和素数 \(p\),求在模 \(p\) 意义下,有多少 \(n\times n\) 的矩阵对 \((A,B)\) 满足 \(\det B\not=0,A=BA\)。答案模 \(998244353\)。 \(n\le3\times10^7\)。


  第一步转化不太显然:\(A\) 可以视作变换 \(B\) 下的不动点,继而引入 Burnside 引理:

\[|X/G|=\frac{1}{|G|}\sum_{g\in G}|X^g|.
\]

可以验证所有可能的 \(B\) 构成群。套用公式,我们只需要求出

\[|G||X/G|.
\]

  对于 \(|G|\),即 \(n\) 维满秩矩阵的数量。依次枚举列向量,当前列向量的限制有且仅有:不落在已有列向量张成的空间内。而 \(k\) 个线性无关向量张成的空间大小显然是 \(p^k\),因此

\[|G|=\prod_{i=0}^{n-1}(p^n-p^i).
\]

  对于 \(|X/G|\),即所有 \(A\) 在行变换意义下的等价类数量。分 \(\operatorname{rank} A\) 讨论,设 \(\operatorname{rank} A=k\),可以钦定 \(A\) 的前 \(k\) 个行向量构成 \(A\) 的行空间的基,取它们构成 \(k\times n\) 的矩阵 \(A'\)。枚举 \(k\times k\) 的行变换 \(B'\),那么可重集 \(\{B'A'\}\) 中,每个 \(A'\) 恰出现 \(|\{B'\}|\) 次,继而可知每个等价类的大小都是 \(|\{B'\}|\),所以

\[|\{A\mid \operatorname{rank}A=k\}/G|=\frac{|\{A'\}|}{|\{B'\}|}=\prod_{i=0}^{k-1}\frac{p^n-p^i}{p^k-p^i}.
\]

  最终有

\[|G||X/G|=\prod_{i=0}^{n-1}(p^n-p^i)\sum_{k=0}^{n}\prod_{i=0}^{k-1}\frac{p^n-p^i}{p^k-p^i}.
\]

\(\mathcal O(n)\) 求所有分母的逆元,最终复杂度 \(\mathcal O(n)\)。

\(\mathscr{C}-\)卿且去

  给定 \(n\)。令 \(f(S)\) 表示在集合 \(S\) 中最多能选出多少个不存在整倍数关系的数。求

\[\sum_{S\subseteq[1,n]\cap\mathbb P}f(\{x\in[1,n]\mid\exist p\in S,p\mid x\}).
\]

答案对 \(998244353\) 取模。 \(n\le10^{10}\)。


  注意和式中的 \(f\) 的参数集合 \(T\) 满足:若 \(x\in T,2x\le n\),则 \(2x\in T\)。因此可以猜测,\(f(T)\) 的值为 \(|\{x\in T\mid x>\lfloor\frac{n}{2}\rfloor\}|\)。通过说明对于任意选取的集合 \(X\),若有 \(x\in X,x\le\lfloor\frac{n}{2}\rfloor\),那么取出最大的满足条件的 \(x\),都有 \((X\setminus\{x\})\cup\{2x\}\) 成立,即可证明。

  因此,我们只关心 \((n/2,n]\) 内的数在多少个 \(S\) 中出现。记 \(\omega(n)\) 表示 \(n\) 的素因子数量,\(\pi(n)\) 表示不超过 \(n\) 的素数数量,那么答案为

\[\begin{aligned}
\mathcal R &= \sum_{i=n/2+1}^n2^{\pi(n)}-2^{\pi(n)-\omega(i)}\\
&= 2^{\pi(n)}\left[(n-n/2)-\sum_{i=n/2+1}^n2^{-\omega(i)}\right].
\end{aligned}
\]

\(f(n)=2^{-\omega(n)}\) 显然积性,所以其前缀和可以与 \(\pi(n)\) 一并由 Min_25 筛求出来。复杂度 \(\mathcal O\left(\frac{n^{3/4}}{\log n}\right)\)。

  你(我)Min_25 忘干净啦?怪不得只有 \(80\text{pts}\)。你应当赎罪

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

  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 -「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. 读取 properties 配置文件含有中文的value内容 导致中文乱码 的解决办法

    1.前言 因为装系统的时候把中文写在了系统路径,现在我想把这个路径写在properties里面来读取,可是 发现java 读取会导致中文乱码成 问号????的乱码  ,百度找了好多博客,基本都是一摸一 ...

  2. antd递归渲染左侧菜单

  3. SQL高级优化系列

    目录 SQL高级优化系列(一)之MySQL优化 SQL高级优化系列(二)之MySQL架构 SQL高级优化系列(三)之存储引擎 SQL高级优化系列(四)之SQL优化 SQL高级优化系列(五)之执行计划 ...

  4. SSM工程常见问题

    1.引入Junit测试 <!--引入junit单元测试,两个一起引用,spring-test版本要与Spring-core保持一致--> <dependency> <gr ...

  5. 【Java】子类实例化过程

    子类对象实例化的全过程 子类继承父类以后,就获取了父类中声明的属性或方法.创建子类的对象,在堆空间中,就会加载所有父类中声明的属性. 当我们通过子类的构造器创建子类对象时,我们一定会调用其父类的构造器 ...

  6. json 转换C# class(用于对接api

    //说明//使用场景:对接api,返回json结果,直接转换C# class//如何使用:复制下面js代码在浏览器控制台执行 ` "order_item_id": "28 ...

  7. 为什么JavaWeb要分层

    首先bai让我们坐着时光机回到n年前的web开发.那个时候最早du都是静态的html页面,zhi后来有了数据库,有了所谓dao的动态页面,然后程序猿在编码的时候,会把所有的代码都写在页面上,包括数据库 ...

  8. 【笔记】直接使用protocol buffers的底层库,对特定场景的PB编解码进行处理,编码性能提升2.4倍,解码性能提升4.8倍

    接上一篇文章:[笔记]golang中使用protocol buffers的底层库直接解码二进制数据 最近计划优化prometheus的remote write协议,因为业务需要,实现了一个remote ...

  9. ipython notebook教程

    一.简介 Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码.方程式.可视化和文本的文档.它的用途包括:数据清理和转换.数值模拟.统计建模.数据可视化.机器学习等等 ...

  10. java继承子父类构造函数-子类的实例化过程

    1 /* 2 * 子父类中的构造函数的特点. 3 * 在子类构造对象时,发现,访问子类构造函数时,父类也运行了. 4 * 为什么呢? 5 * 原因是:在子类的构造函数中第一行有一个默认的隐式语句.su ...