ABC300 Editorial

哭了,还是写不了 Ex 的题解,因为不会

A - N-choice question

题意

给定 \(a,b\) 和序列 \(\{c_n\}\),求 \(a+b\)\(c\) 中的下标。

分析

直接记录一下 \(pos_{c_i}=i\) 就薄纱了。

B - Same Map in the RPG World

题意

给定 \(n\times m\) 的矩阵 \(A,B\),问能不能通过水平和竖直的整体平移使 \(A^\prime=B\)

分析

推一下,当位移为 \((x,y)\) 时,\(A_{i,j}\) 会跑到 \(A_{(i+x)\bmod n,(j+y)\bmod m}\),暴力判断即可。

C - Cross

题意

不好描述,自己看吧!

分析

直接对于每一个点,暴力向外拓展即可,注意细节和审题

D - AABCC

题意

有多少个小于 \(n\) 的整数,可以被表示成 \(a^2bc^2,a,b,c\in\mathbb P,a<b<c\) 的形式。

\(n\le10^{12}\)

分析

首先可以将式子化为 \(x=(ac)^2b\),所以不难看出 \(a<b<c\le10^6\)

于是考虑线性筛预处理出 \([1,10^6]\) 内的质数数量前缀和,每个数质因子的数量和最大质因子,枚举 \(ab\) 即可,复杂度 \(\mathcal O(\sqrt n)\)

E - Dice Product 3

题意

初始时有一个 \(x=1\),每次扔骰子随机选出一个 \([1,6]\) 的整数 \(p\),让后令 \(x\gets xp\)。问结果恰好是 \(n\) 的期望 \(\bmod 998244353\)

\(2\le n\le10^{18}\)

分析

考虑可以设计一个很基础的 dp,设 \(f_{x}\) 表示扔到 \(x\) 的期望,不难列出转移:

\[f_{x}=\dfrac{1}{6}\sum_{i=1}^6[i|x]f_{\frac{x}{i}} \]

发现有环,稍微移一下项就有:

\[f_{x}=\dfrac{1}{5}\sum_{i=2}^6[i|x]f_{\frac{x}{i}} \]

发现这个转移的问题在于 \(x\) 中有很多废物,因为 \(x\) 只能包含因子 \(2,3,5\)。所以改一下 dp,换成 \(f_{i,j,k}\) 表示扔到 \(2^i3^j5^k\) 的期望,转移大同小异,不写了。

F - More Holidays

题意

给定只包含 xo 的长度为 \(n\) 的字符串 \(S\) 和整数 \(m,k\)。将 \(m\)\(S\) 首尾拼接得到字符串 \(T\),问通过将 \(T\)\(k\)x 变成 o 能得到的最长 o 连续子段长度。

分析

因为是直接复制 \(S\) 得到 \(T\),所以可以认为答案对应的子段起点一定在第一个 \(S\) 内。于是考虑二分答案,判断 \([i,i+mid-1]\) 这个区间内的 x 数量是否超过 \(k\),预处理 x 数量前后缀和就好了。

G - P-smooth number

题意

求有多少小于等于 \(n\) 的整数,满足其最大的质因子不超过 \(P\)

\(n\le10^{16},2\le P\le100\)

分析

考虑到质数的数量应该是很小的,所以最后组成的时候应该数量不会太多,关键在于 \(2\) 对应的次数会比较大。有由于有 \(\lfloor\dfrac{n}{bc}\rfloor=\lfloor\dfrac{\lfloor\dfrac{n}{b}\rfloor}{c}\rfloor\),所以考虑暴力 dfs,最后到 \(2\) 的时候用 __lg 来算。让后可以考虑进一步的优化,可以通过记忆化搜索的方式来解决,其实还可以再进一步进行一些底层优化,可以通过预处理 dp 的方式处理出较小的情况的答案,大概阈值取到 \(2^{18}\) 的时候就已经跑的飞快了。极限数据 dfs 递归了 \(28353155\) 次,还是相当宽裕的。

posted @ 2023-04-30 11:44  JWRuixi  阅读(191)  评论(0编辑  收藏  举报