\(\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. Shell统计每个单词出现的个数

    题目链接 题目描述 写一个 bash脚本以统计一个文本文件 nowcoder.txt 中每个单词出现的个数. 为了简单起见,你可以假设: nowcoder.txt只包括小写字母和空格. 每个单词只由小 ...

  2. web.xml文件配置模板

    直接贴完整代码,当然,spring的核心控制器依赖包需要通过mean提前配置 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.// ...

  3. 利用python绘制分析路易斯安那州巴吞鲁日市的人口密度格局

    前言 数据来源于王法辉教授的GIS和数量方法,以后有空,我会利用python来实现里面的案例,这里向王法辉教授致敬. 绘制普查人口密度格局 使用属性查询提取区边界 import numpy as np ...

  4. Python多环境管理神器(pyenv)

    前面我们已经介绍了,python中两种最基础的虚拟环境管理工具,venv和virtualenv,其中virtualenv可以和virtualenvwrapper配合使用.详情请参考:https://w ...

  5. kafka学习笔记(六)kafka的controller模块

    概述 今天我们主要看一下kafka的controller的代码,controller代码是kafka的非常重要的代码,需要我们深入学习.从某种意义上来说,它是kafka最核心的组件,一方面,他要为集群 ...

  6. 软件开发架构与网络之OSI七层协议(五层)

    本期内容概要 python回顾 软件开发架构 网络理论前瞻 osi七层协议(五层) 以太网协议 IP协议 port协议 交换机 路由器 局域网 广域网 TCP协议 三次握手 四次挥手 UDP协议 内容 ...

  7. 内核内存分配器SLAB和SLUB

    内核分配器的功能 在操作系统管理的虚拟内存中,用于内存管理的最小单位是页,大多数传统的架构是4KB.由于进程每次申请分配4KB是不现实的,比如分配几个字节或几十个字节,这时需要中间机制来管理页面的微型 ...

  8. 【刷题-LeetCode】307. Range Sum Query - Mutable

    Range Sum Query - Mutable Given an integer array nums, find the sum of the elements between indices ...

  9. deepin20使用snap并设置代理

    snap下载 $ sudo apt update $ sudo apt install snapd https://snapcraft.io/docs/installing-snap-on-ubunt ...

  10. BAT经典面试题之redis的热KEY问题怎么解决

    引言 讲了几天的数据库系列的文章,大家一定看烦了,其实还没讲完...(以下省略一万字).今天我们换换口味,来写redis方面的内容,谈谈热key问题如何解决.其实热key问题说来也很简单,就是瞬间有几 ...