Live2D

Solution Set -「LOCAL」冲刺省选 Round XI

Summary

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

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

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

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

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

  表现中规中矩叭。

Solutions

  Contest link. (private)

A 我醉

  给定一棵含 n 个结点的边带权的树,求树上最长回文路径长度。 n105


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

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

B 梧桐依旧

  给定 n 和素数 p,求在模 p 意义下,有多少 n×n 的矩阵对 (A,B) 满足 detB0,A=BA。答案模 998244353。 n3×107


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

|X/G|=1|G|gG|Xg|.

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

|G||X/G|.

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

|G|=i=0n1(pnpi).

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

|{ArankA=k}/G|=|{A}||{B}|=i=0k1pnpipkpi.

  最终有

|G||X/G|=i=0n1(pnpi)k=0ni=0k1pnpipkpi.

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

C卿且去

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

S[1,n]Pf({x[1,n]pS,px}).

答案对 998244353 取模。 n1010


  注意和式中的 f 的参数集合 T 满足:若 xT,2xn,则 2xT。因此可以猜测,f(T) 的值为 |{xTx>n2}|。通过说明对于任意选取的集合 X,若有 xX,xn2,那么取出最大的满足条件的 x,都有 (X{x}){2x} 成立,即可证明。

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

R=i=n/2+1n2π(n)2π(n)ω(i)=2π(n)[(nn/2)i=n/2+1n2ω(i)].

f(n)=2ω(n) 显然积性,所以其前缀和可以与 π(n) 一并由 Min_25 筛求出来。复杂度 O(n3/4logn)

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

posted @   Rainybunny  阅读(128)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示