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\) 的期望,不难列出转移:
发现有环,稍微移一下项就有:
发现这个转移的问题在于 \(x\) 中有很多废物,因为 \(x\) 只能包含因子 \(2,3,5\)。所以改一下 dp,换成 \(f_{i,j,k}\) 表示扔到 \(2^i3^j5^k\) 的期望,转移大同小异,不写了。
F - More Holidays
题意
给定只包含 x
和 o
的长度为 \(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\) 次,还是相当宽裕的。