AT_arc171_e.[ARC171E] Rookhopper's Tour

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个纵向 NN 格、横向 NN 格的网格。网格中从上往下第 ii 行、从左往右第 jj 列的格子记作 (i, j)(i,\,j)。此外,有 11 个黑子和 MM 个白子。

你打算用这些道具一个人玩一个游戏。

游戏规则如下。首先,你将黑子放在 (A, B)(A,\,B)。然后,将 MM 个白子分别放在网格的某些格子中,每个格子最多放一个白子。需要满足以下条件:

  • 不能在 (A, B)(A,\,B) 放白子。
  • 每一行最多只能放一个白子。
  • 每一列最多只能放一个白子。

之后,你可以重复进行如下操作,直到无法继续:

  • 假设黑子当前在 (i, j)(i,\,j),你可以进行以下四种操作之一:
    • 如果 (i, k)(i,\,k)(j<kj < k)有白子,可以移除该白子,并将黑子移动到 (i, k+1)(i,\,k+1)。
    • 如果 (i, k)(i,\,k)(j>kj > k)有白子,可以移除该白子,并将黑子移动到 (i, k−1)(i,\,k-1)。
    • 如果 (k, j)(k,\,j)(i<ki < k)有白子,可以移除该白子,并将黑子移动到 (k+1, j)(k+1,\,j)。
    • 如果 (k, j)(k,\,j)(i>ki > k)有白子,可以移除该白子,并将黑子移动到 (k−1, j)(k-1,\,j)。
      • 但如果黑子要移动到的格子不存在,则不能进行该操作。

例如,下图所示。这里 B 表示黑子,W 表示白子,. 表示空格,O 表示黑子可以移动到的格子。

..O...
..W...
......
......
..B.WO
......

当你无法再进行操作时,若满足以下所有条件,则游戏获胜,否则失败:

  • 网格中所有白子都被移除。
  • 黑子回到 (A, B)(A,\,B)。

在所有可能的 MM 个白子的初始放置方式中,有多少种方式可以通过合理操作使你获胜?请输出方案数对 998244353998244353 取模的结果。

输入格式

输入为以下格式,从标准输入读入。

NN MM AA BB

输出格式

输出能够获胜的白子放置方案数对 998244353998244353 取模的结果。

输入输出样例

  • 输入#1

    6 4 2 3

    输出#1

    4
  • 输入#2

    5 3 1 3

    输出#2

    0
  • 输入#3

    200000 47718 21994 98917

    输出#3

    146958602

说明/提示

限制条件

  • 2≤M≤N≤2×1052 \leq M \leq N \leq 2 \times 10^5
  • 1≤A≤N1 \leq A \leq N
  • 1≤B≤N1 \leq B \leq N
  • N, M, A, BN,\,M,\,A,\,B 均为整数

样例说明 1

例如,将白子按如下方式放置:

......
..BW..
.....W
......
..W...
....W.

此时,你可以按以下步骤移动黑子并获胜:

  • 移除 (5, 3)(5,\,3) 的白子,将黑子移到 (6, 3)(6,\,3)。
  • 移除 (6, 5)(6,\,5) 的白子,将黑子移到 (6, 6)(6,\,6)。
  • 移除 (3, 6)(3,\,6) 的白子,将黑子移到 (2, 6)(2,\,6)。
  • 移除 (2, 4)(2,\,4) 的白子,将黑子移到 (2, 3)(2,\,3)。
  • 此时所有白子都被移除,且黑子回到 (A, B)=(2, 3)(A,\,B) = (2,\,3),你获胜。

能够获胜的白子放置方案共有 44 种。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页