首页 > 其他分享 >ARC182 题解

ARC182 题解

时间:2024-08-13 10:06:00浏览次数:4  
标签:right frac ARC182 题解 bmod gcd left equiv

A - Chmax Rush!

发现一个数能向哪边覆盖只由再他之后操作且 \(v\) 比他大的操作决定。
所以扫一遍确定方向之后乘起来就好。

B - |{floor(A_i/2^k)}|

首先不难发现 \(< 2_{k - 1}\) 的元素是无用的,因为它们会由 \(\ge 2^{k - 1}\) 的元素除以 2 的幂得到。

先想上界。对于 \(0 \le x < k\),处于 \([2^x, 2^{x + 1})\) 的元素至多有 \(\min(n, 2^x)\) 个,所以上界就是 \(\sum_{0 \le x < k} \min(n, 2^x)\)。

再想怎么达到上界。可以简单地构造 \(a_i = 2^{k - 1} + \operatorname{rev}(i)\),其中 \(\operatorname{rev}(i)\) 表示 \(i\) 在二进制下表示下数位翻转后的数。

C - Sum of Number of Divisors of Product

先考虑确定序列 \(a_{i, \cdots, n}\) 后如何算贡献:

\[ans = \prod_{p \in \mathbb{prime}} \left(1 + \sum_{i = 1}^n cnt_{a_i, p}\right) \]

其中 \(cnt_{x, p}\) 表示 \(p\) 这个质因子在 \(x\) 中的出现次数。

考虑式子的组合意义,就是每个质因子都有 \(n\) 个物品,第 \(i\) 个的价值为 \(cnt_{a_i, p}\),每个质因子至多选一个物品,求所有选择方案的物品价值乘积之和。

然后对着组合意义写 DP 式子:记 \(f_{i, S}\) 表示考虑了前 \(i\) 个位置,\(S\) 中的质因子已经选过的价值乘积之和。
转移为:

\[f_{i, S} \times \sum_{j = 1}^m val_{j, T} \rightarrow f_{i + 1, S \cup T} \]

其中 \(val_{j, T}\) 表示填 \(j\) 时考虑 \(T\) 中的质因子的贡献。

发现可以写成矩阵乘法的形式,所以时间复杂度 \(O\left(8^{\pi(m)} \log n\right)\)。

D - Increment Decrement Again

取模很烦人,考虑先把取模干掉。
然后对于相邻两项的限制就变成了 \(a_i \neq a_{i + 1} \and \lvert a_i - a_{i + 1} \rvert < m\)。
如果我们把序列调整成不降的,那么确定了首项就能确定整个序列。
可以将 \(A\) 调整成满足条件的不降的序列。
如果我们将 \(B\) 类似地调整成 \(B'\),问题就变成了确定 \(B'_1\) 使得 $\sum_{i = 1}^n \lvert B'_i - A_i \rvert $ 最小。
如果记 \(B'_1 = B_1\) 的 \(B'\) 序列为 \(C\),则 \(B'_i\) 都可以表示成 \(B'_i = C_i + k \times m\) 的形式,那么我们就是让 \(\sum_{i = 1}^n \lvert C_i - A_i + k \times m \rvert\) 最小。
如果不强制是 \(k \times m\) 的话就是取中位数,否则就中位数附近的几个 \(m\) 的倍数算一下即可。

F - Graph of Mod of Linear

基本上是翻译了一下官方题解,加入了一些自己的思考。

对每组询问分别考虑。

如果把边视为有向边,则生成的图是一棵内向基环树,连通块数与环的数量是相等的。
首先特判掉 \(A = 1\) 和 \(A = 0\) 的情况。\(A = 0\) 时答案为 \(1\),因为连成了一个菊花;\(A = 1\) 时答案为 \(\gcd(N, B)\),因为连成了 \(\gcd(N, B)\) 个环。
发现如果 \(A \perp N\),则 \(Ax + B\) 互不相等,连成的是若干个环,所以考虑按 \(A\) 与 \(N\) 是否互质分类讨论。

Case1: \(\gcd(A, N) > 1\)

我们想知道的是环上的点有哪些。考虑如果每个点都沿着出边跳 \(N\) 步,最后一定跳到环上且环上的点都会被跳到。
所以记 \(f^{N}(x)\) 表示从点 \(x\) 跳 \(N\) 步到达的点,则:

\[\begin{aligned} f^{N}(x) & \equiv A(\cdots(A(Ax + B) + B) + \cdots) + B \\ & \equiv A^N x + \sum_{i = 0}^{N - 1} B A^{i} \equiv A^N x + B \frac{A^N - 1}{A - 1} \pmod N \end{aligned}\]

记 \(d = \gcd(N, A^N)\),发现 \(f^N(x + 1) - f^N(x) \equiv A^N \equiv 0 \pmod d\)。
这就是在说,对于所有在环上的点,它们都是与 \(f^N(0) = B\frac{A^N - 1}{A - 1}\) 模 \(d\) 同余的。
所以考虑把这些点单独拉出来,转化到 \(\gcd(A, N) = 1\) 的情况。
考虑对于环上的一个点 \(u = dk_1 + f^N(0)\) 和它连向的点 \(v = dk_2 + f^N(0)\),有:

\[\begin{aligned} dk_2 + f^N(0) &\equiv A(dk_1 + f^N(0)) + B \\ dk_2 &\equiv Adk_1 + (A - 1)f^N(0) + B \\ dk_2 &\equiv Adk_1 + B A^N \pmod N \end{aligned}\]

两侧同时除以 \(d\),可得:

\[\begin{aligned} k_2 &\equiv Ak_1 + B \frac{A^n}{d} \quad \left(\bmod{\frac{N}{d}} \right) \end{aligned}\]

问题就从 \((N, A, B)\) 转化为了 \((\frac{N}{d}, A \bmod \frac{N}{d}, B \cdot \frac{A^n}{d} \bmod{\frac{N}{d}})\)。

Case2: \(\gcd(A, N) = 1\)

连通块数与环的数量相等,考虑怎么数环的数量。
可以将每个点的权值设为它所在环的长度的倒数,这样对于一个环长为 \(k\) 的环,它的贡献为 \(k \cdot \frac{1}{k} = 1\),求和即为环的数量。

对于点 \(x\),如果它在 \(K\) 步后回到 \(x\),那么有:

\[\begin{aligned} A^K x + B \frac{A^K - 1}{A - 1} & \equiv x \pmod N \\ \left(A^K - 1 \right) \left( x + \frac{B}{A - 1} \right) & \equiv 0 \pmod N \\ \end{aligned}\]

两边同时除以 \(\gcd\left(x + \dfrac{B}{A - 1}, N \right) = \dfrac{\gcd\big(x(A - 1) +B, N(A - 1)\big)}{A - 1}\),得:

\[\begin{aligned} A^K \equiv 1 \quad \left( \bmod \frac{N(A - 1)}{\gcd\big(x(A - 1) +B, N(A - 1)\big)} \right) \end{aligned}\]

化简一下。记 \(G = \gcd(A - 1, B)\),则 \(A' = \frac{A - 1}{G}\),\(B' = \frac{B}{G}\),可得到:

\[A^K \equiv 1 \quad \left( \bmod \frac{N A'}{\gcd(xA' + B', NA')} \right) \]

此时有 \(xA' + B \perp A'\),所以模数分母上的 \(\gcd\) 中不含 \(A'\) 的因子,可以全部除掉。
所以记 \(N' = \dfrac{N}{\gcd(A'^N, N)}\),可得:

\[A^K \equiv 1 \quad \left( \bmod \frac{N A'}{\gcd(xA' + B', N')} \right) \]

记 \(y = xA' + B' \bmod N'\),由于 \(A' \perp N'\),所以对于 \(x \in [0, N') \cap \mathbb Z\),\(y\) 互不相同且取遍 \([0, N') \cap \mathbb Z\),那么对于 \(x \in [0, N) \cap \mathbb Z\),每个不同的 \(y\) 都恰好取到过 \(\frac{N}{N'}\) 次。
记 \(C_y\) 表示 满足 \(y = xA' + B' \bmod N'\) 的点 \(x\) 的环长,也即最小的 \(k\) 满足:

\[A^K \equiv 1 \quad \left( \bmod \dfrac{N A'}{\gcd(y, N')} \right) \]

那么有:

\[ans = \frac{N}{N'} \sum_{y = 0}^{N' - 1} \frac{1}{C_y} \]

发现对于 \(\gcd(y, N')\) 相同的 \(y\) 有相同的 \(C_y\),所以考虑将枚举 \(y\) 改为枚举 \(\gcd(y, N')\)。
记 \(n = \gcd(y, N')\),则对应的 \(y\) 有 \(\varphi\left(\dfrac{N'}{n}\right)\) 个,因为除掉 \(n\) 之后要互质。
更改 \(C_n\) 的定义为 满足 \(y = xA' + B' \bmod N', \gcd(y, N') = n\) 的点 \(x\) 的环长,那么答案的式子可以改写为:

\[ans = \frac{N}{N'} \sum_{n \mid N'} \frac{1}{C_n} \varphi\left(\dfrac{N'}{n_1}\right) \]

现在的问题是计算 \(C_n\)。
有以下性质:

  • \(C_1\) 为 \(\varphi(NA')\) 的因数。
  • 对于 \(n_1 \mid N'\),\(n_2 \mid N'\),如果 \(n_1 \mid n_2\),那么 \(C_{n_2} \mid C_{n_1}\)。

第一个性质是欧拉定理,第二个性质是考虑:

\[\begin{aligned} A^{C_{n_1}} \equiv 1 \quad \left( \bmod \frac{N'A}{n_1} \right) \\ A^{C_{n_2}} \equiv 1 \quad \left( \bmod \frac{N'A}{n_2} \right) \end{aligned}\]

因为 \(n_1 \mod n_2\),那么 \(\frac{N'A}{n_2} \mid \frac{N'A}{n_1}\),所以:

\[A^{C_{n_1}} \equiv 1 \quad \left( \bmod \frac{N'A}{n_2} \right) \]

所以 \(C_{n_2} \mid C_{n_1}\)。

有了这两个性质就可以通过记搜把 \(C_n\) 搜出来。
具体来讲:搜索时记录二元组 \((n, C)\) 表示当前的 \(n\) 和上一次的 \(C\),枚举 \(\varphi(NA')\) 的质因子,不断尝试将他们除掉,可以用快速幂判定,算出当前的 \(C\) 后枚举 \(N'\) 的质因子 \(p\),递归到 \((n \cdot p, C)\)。

时间复杂度不怎么会算,感觉大概是什么 \(O\big(q \omega(V) d(n)\big)\),其中 \(V = 10^{12}\),\(d(n)\) 表示 \(n\) 的因子个数,\(\omega(n)\) 表示 \(n\) 的质因子个数。

代码

标签:right,frac,ARC182,题解,bmod,gcd,left,equiv
From: https://www.cnblogs.com/definieren/p/18354900

相关文章

  • ARC182B |{floor(A_i/2^k)}| 题解
    ARC182B|{floor(A_i/2^k)}|题解题目大意定义一个长度为\(N\)的序列\(A\)的分数为能被表示成\(\lfloor{A_i\over2^k}\rfloor\)的数的个数,其中\(i=1,2,\dots,N\),\(k\)为任意自然数。给定\(N,K\),求长度为\(N\)且元素大小都在\(2^K-1\)内的所有序列的分数的最大值......
  • [ARC182F] Graph of Mod of Linear
    MyBlogs[ARC182F]GraphofModofLinear首先判掉\(A\leq1\)的情况,接下来默认\(A\geq2\)。原图是基环树森林,数连通块数等价于数环的个数。比较自然的一点是,把问题分为\(A,N\)是否互质。因为如果\(A\)和\(N\)互质,则\(Ai+B\)在\(\modN\)意义下互不相同,所以每个......
  • ARC182C
    题目C-SumofNumberofDivisorsofProduct定义一个合法的序列为:长度在\([1,n]\)间,且每个元素均为\([1,m]\)中整数的序列。定义一个合法序列的权值为:令\(X\)为序列中所有元素的乘积,则权值为\(X\)的约数个数。对所有\(\sum_{k=1}^nm^k\)个合法序列,求它们的......
  • 【题解】 [USACO 2007 FEB] Cow Party S
    题目描述题目大意给定一个有向图,以及一个顶点。求其他所有点到给定点,再从给定点回到各自起始点的最短路中的最大值。思路本题主要考查:对单源最短路算法的熟练运用。最短路总共分为2段:其他所有点到给定点、给定点回到各自起始点。首先求第一段:可以在原图的基础上建一个反向图......
  • 洛谷 P4305 不重复数字——题解
    洛谷P4305题解传送锚点摸鱼环节[JLOI2011]不重复数字题目描述给定\(n\)个数,要求把其中重复的去掉,只保留第一次出现的数。输入格式本题有多组数据。第一行一个整数\(T\),表示数据组数。对于每组数据:第一行一个整数\(n\)。第二行\(n\)个数,表示给定的数。输出格......
  • 【题解】 热浪
    题目描述【题目描述】德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品。FarmerJohn此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛......
  • [题解 hduoj-7522] 2024HDU 暑假多校7 - cats 的最小生成树
    原题链接题意有一个有重边的无向图,每次找到它的最小生成树,并删除生成树的边,直到不存在最小生成树,问被每条边在第几次被删除.思路考虑用类似Kruskal算法,但是是遍历一遍所有边,同时处理出来所有的生成树.具体这样做:如Kruskal一样,把所有边按边权排序,......
  • GBNC 题解
    GBNC题解这可比平时做的红题难吧。题目以思维为主,和CCF的趋势有点挂钩。题目实际难度:橙-,橙,橙,黄。不知道从哪听到的消息,说你们的信息思维都特别好,所以就没有大红题了。T1思路这道题我们能用模拟来写。我们可以将这整个询问分为\(n\)个小询问。每次询问我们用一个整形\(......
  • [题解]P3966 [TJOI2013] 单词
    P3966[TJOI2013]单词用\(p[i]\)来表示经过节点\(i\)的字符串个数。那么节点\(u\)的答案就是fail树上,以\(u\)为根的子树的\(p\)之和。由于我们已经计算了\(p[i]\),所以字符串\(i\)作为模式串本身&模式串前缀的情况已经考虑了。还需考虑\(i\)作为模式串后缀的情况,而只有fail树上......
  • 【题解】 小狗
    题目描述【题目描述】小Q是个爱狗狂魔,他饲养了N(N<=2000)条中华田园犬狗和M(M<=2000)条秋田犬。并且给每条狗取了一个英文名字,例如:Sally,Sussan,Lysa等,为了方便起见,小Q登记时只会登记首字母,例如Sally、Sussan、Lysa只会登记为S、S、L。现在中华田园犬......