ARC185 A-E

比 ARC184 简单多了。

A. mod M Game 2

我们只关心 Alice 出的最后一张牌,这张牌会决定游戏的胜负,因为除了最后一张牌,二人都可以选择出牌来使得自己不会输。

让我们假设 Alice 最后出的牌为 x,那么在打出最后一张牌之前的牌之和为 n(n1)x

  1. [n(n1)x]modm=0,令 y=n(n1)modm,如果 Bob 打出的前 n1 张牌中没有 y,那么 x=y,此时 Alice 会输。可以被证明,Bob 一定存在一种策略能够达到这种状态。
  2. [n(n1)x]modm0,此时 Alice 必胜。

条件 1 就等价于 1n(n1)modmn

B. +1 and -1

贪心的想,我们想尽量让最后的 A 中的元素尽量接近(平均值),令 s=Ai,那么最终的序列 A=(sn,sn,,sn+1,,sn+1),其中 sn+1 共有 smodn 项。

之后我们就只需要判断 A 是否可能通过操作变成上述的样子,这是容易的。

详细证明可以见 Atcoder 官解。

C. Sum of Three Integers

题目只要求给出任意一组合法解。

让我们枚举 i=1,2,,n,之后我们就只需要判断是否有两个整数 j,k 满足 Aj+Ak=XAi

我们可以通过一次卷积来解决这个问题。

具体的,我们可以通过一次卷积求出有多少个 Aj+Ak(1j,kn) 等于某个值 Y,但是可能 j=k,此时将每一个 Ap+Ap 的方案减去一。

除此之外,还可能存在 Ai+Ak=XAi 也就是一个 Ai 出现两次的情况,我们可以先提前预处理出满足这种情况的方案数,最后在减去即可。

时间复杂度 O(XlogX)

D. Random Walk on Tree

没有场切。

先让我们考虑 m=1 的情况。

此时 Takahashi 会在节点 0 和一个叶子节点之间反复移动,显然,Takahashi 想要给这 n 个叶子节点都染上色的期望往返次数为 i=0n1nni,每次往返需要 2 步,且最后一次不需要往返,所以期望步数为 2(i=0n1nni)1

接下来让我们单独考虑一条长度为 m 的链的情况,转化为这样一个问题:初始时 i=0,每次随机将 i 变为 i+1i1,当 i=0 时只有第一种操作,求出 i 变为 m 的期望操作次数。

fi 表示将 i 变为 i+1 的期望次数,令 gi 表示将 i+1 变为 i 的期望次数,我们有:

  • i=0 时,有 f0=g0+1
  • i=m1 时,有 fm1=0,gm1=1
  • 1im1fi+gi1=fi+1+gi,因为中间所有点的期望进出次数是相同的。

若我们固定了移动的起点,在每一个点时它进行两种操作的概率时相同的,所以进行操作的期望次数与它具体是那种操作无关,于是有 fi=gi1

从大到小考虑每个点,有 fi=mi,gi=mi1,所以总期望次数为 m2

最后的答案就是 (2(i=0n1nni)1)m2

E. Adjacent GCD

依次枚举每一个 m=i=1,2,n 来求解答案,记 m=i 的答案为 ansi

在我们不考虑 i 时,答案为 2ansi1

现在让我们考虑 i,记子序列中的上一个选择的数为 j,那么最新造成 gcd(ai,aj)2j1 的贡献。

也就是说 ansi=2ansi1+j=1i1gcd(ai,aj)2j1

现在让我们考虑后面那一坨玩意。考虑求出每个 gcd,然后再乘上 2j1,但这样算肯定不对,因为我们无法确定这个就是那两个数的 gcd,无法保证它们没有其它的质因子。

但是,我们知道 x=dxφ(d)

也就是说,我们只需要枚举 ai 的每个因子 p,看有多少个数包含这个因子 p,那么这个因子对答案造成的贡献就为 pφ(p)

时间复杂度 O(nai)

posted @   ddxrS  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示