Loading

ARC192 做题记

A (ARC Arc)

题意

给定正整数 \(N\) 和一个长度为 \(N\) 的由 \(0\)\(1\) 构成的数列 \(A = (A_1, A_2, \dots, A_N)\),下面下标对 \(N\) 取模。

我们称一个长度为 \(N\) 的仅由大写字母构成的字符串 \(S\)好字符串,当且仅当可以通过执行 \(0\) 次或多次下述操作,使得 \(A\) 中不再包含 \(0\)

  • 选择以下两种操作之一执行:

    • 选择一个满足 \(1 \leq i \leq N\) 的整数 \(i\),使得 $S_i = $ A、$S_{i+1} = $ R、$S_{i+2} = $ C,然后将 \(A_i\)\(A_{i+1}\) 替换为 \(1\)

    • 选择一个满足 \(1 \leq i \leq N\) 的整数 \(i\),使得 $S_{i+2} = $ A、$S_{i+1} = $ R、$S_i = $ C,然后将 \(A_i\)\(A_{i+1}\) 替换为 \(1\)

请判断是否存在这样的好字符串。

\(3\le N\le 2\times 10^5\)

题解

注意到构造 \(ARCR{\color{red}{ARCR}}\cdots\) 能覆盖所有位置。

于是 \(4\mid N\) 必定有解。

\(N\) 是奇数就构造这个循环的前缀,只有恰好一个覆盖不到,只要不是全 \(0\) 都有解。

\(N=4k+2\) 打表,发现恰有两个奇偶不同的位覆盖不到,判断一下即可。

\(\bf{record}\)

B (Fennec VS. Snuke 2)

题意

Fennec 和 Snuke 正在玩一个棋盘游戏。

给定一个正整数 \(N\) 和一个长度为 \(N\) 的正整数序列 \(A = (A_1, A_2, \dots, A_N)\)。此外,存在一个初始为空的集合 \(S\)

Fennec 和 Snuke 轮流进行以下操作(Fennec 先手):

  • 选择一个满足 \(1 \leq A_i\) 的索引 \(i\)。将 \(A_i\) 减去 \(1\),若此时 \(i \notin S\),则将 \(i\) 加入集合 \(S\)

  • \(S = \{1, 2, \dots, N\}\) 时,最后执行操作的玩家被认定为胜者,游戏结束。

可以证明,在胜者确定前,玩家始终有可选的操作(即满足 \(1 \leq A_i\)\(i\) 必然存在)。

假设双方均采取最优策略以争取胜利,请判定最终胜者。

\(1\le N\le 2\times 10^5,1\le A_i\le 10^9\)

题解

博弈题,就从 \(N\) 小的情况一步步分析上来。

懒得写了(

\(\bf{record}\)

C (Range Sums 2)

题意

给定一个正整数 \(N\)

Snuke 隐藏了一个由 \((1,2,\dots,N)\) 排列而成的正整数序列 \(P = (P_1, P_2, \dots, P_N)\) 和一个长度为 \(N\) 的正整数序列 \(A = (A_1, A_2, \dots, A_N)\)其中保证 \(P_1 < P_2\)

你可以向 Snuke 发送最多 \(2N\) 次查询。每次查询的形式如下:

  • 指定两个不同的正整数 \(s, t\)\(1 \leq s, t \leq N\)),获得 \(\displaystyle \sum_{i=\min(P_s, P_t)}^{\max(P_s, P_t)} A_i\) 的值。

请通过交互确定 \(P\)\(A\)

题解

问一个点 \(x\) 和其他所有点,能确定一个端点,再问端点和所有点。

最后分讨链是正的还是反的即可,需要一次询问。用脚维护,\(2N-1\) 次询问。

\(\bf{record}\)

D (Fraction Line)

题意

对于正有理数 \(x\),定义 \(f(x)\) 如下:

\(x\) 用互质的正整数 \(P, Q\) 表示为 \(\dfrac{P}{Q}\) 时,\(f(x)\) 的值为 \(P \times Q\)

给定正整数 \(N\) 和长度为 \(N-1\) 的正整数序列 \(A = (A_1, A_2, \dots, A_{N-1})\)

我们称满足以下所有条件的长为 \(N\) 的正整数序列 \(S = (S_1, S_2, \dots, S_N)\)好序列

  • 对于所有满足 \(1 \leq i \leq N-1\) 的整数 \(i\),有 \(f\left(\dfrac{S_i}{S_{i+1}}\right) = A_i\)

  • \(\gcd(S_1, S_2, \dots, S_N) = 1\)

定义序列的分数为该序列所有元素的乘积。

可以证明好序列的个数是有限的。请计算所有好序列的分数之和对 \(998244353\) 取模的结果。

\(1\le N,A_i\le 10^3\)

题解

单独考虑 \(p^k\),注意到 \(f\left(\dfrac{p^d_i}{p^d_{i+1}}\right)=p^{\left\vert d_i-d_{i+1} \right\vert }\)

然后 \(\gcd=1\) 等价于 \(\min d_i=0\)

每个素数独立开来,用脚 dp

\(\bf{record}\)

E (Snuke's Kyoto Trip)

题意

AT_arc192_e [ARC192E] Snuke's Kyoto Trip

题目描述

给定整数 \(W, H, L, R, D, U\)

已知矩形内合法的点为 \([0,W]\times [0,H]-[L,R]\times [D,U]\)

在矩形内每次 \(x+1\)\(y+1\) 游走,可以任意钦定起点终点,但是路径必须每次在合法点内。

求所有可能的合法路径数量对 \(998244353\) 取模的结果。

\(0\le W,H\le 10^6\)

题解

算一下矩形内的路径条数,记为 \(G(n,m)=\dbinom{n+m+4}{n+2}-(n+2)(m+2)-1\)

算一下矩形内钦定右上为终点的方案数,记为 \(F(n,m)=\dbinom{n+m+2}{n+1}-1\)

方案数首先加上 \(G(n,m)\),接下来减去所有不合法:

  • 起点终点位置均不合法,为 \(G(R-L,U-D)\)

  • 起点位置不合法,终点位置合法。必然会出不合法矩形的上或右边界,枚举那个边界点,用 \(F\) 算贡献。

  • 起点终点位置均合法,但是路径不合法。必然会进不合法矩形的下或左边界,枚举那个边界点,用 \(F\) 算贡献。

    其实用上或右算一个样,无所谓。

只需组合数,复杂度线性。

\(\bf{record}\)

posted @ 2025-08-18 12:00  HaHeHyt  阅读(18)  评论(0)    收藏  举报