AT_arc157_d.[ARC157D] YY Garden

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

在一个 HH 行 WW 列的网格中,每个格子上写有字符 X 或 Y。从上到下第 ii 行,从左到右第 jj 列的格子记作 (i, j)(i,\,j)。网格中的字符由 HH 个字符串 S1, S2, …, SHS_1,\,S_2,\,\dots,\,S_H 给出,第 ii 个字符串 SiS_i 的第 jj 个字符表示格子 (i, j)(i,\,j) 上的字符。

你可以在相邻的每两行之间和每两列之间设置横向或纵向的栅栏,栅栏可以相互交叉。设置栅栏后,“从某个格子出发,只能通过上下左右相邻的格子且不跨越栅栏所能到达的所有格子”被定义为一个区画(请参考样例 1 的说明)。

栅栏的设置方式共有 2H−1×2W−12^{H-1} \times 2^{W-1} 种。请计算其中满足下述条件的设置方式的个数,并对 998244353998244353 取模输出。

条件: 每个区画中恰好包含 22 个写有 Y 的格子。

输入格式

输入以如下格式从标准输入给出。

HH WW
S1S_1
S2S_2
⋮\vdots
SHS_H

输出格式

输出满足条件的栅栏设置方式总数,对 998244353998244353 取模。

输入输出样例

  • 输入#1

    2 3
    XYY
    YXY

    输出#1

    2
  • 输入#2

    2 3
    XYX
    YYY

    输出#2

    0
  • 输入#3

    2 58
    YXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXY
    YXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXY

    输出#3

    164036797

说明/提示

限制条件

  • 1≤H≤20001 \leq H \leq 2000
  • 1≤W≤20001 \leq W \leq 2000
  • Si (1≤i≤H)S_i\ (1 \leq i \leq H) 是仅由 X 和 Y 组成的长度为 WW 的字符串。

样例解释 1

下面是设置围栏的八种方式。

X Y Y    X|Y Y    X Y|Y    X|Y|Y
          |          |      | |
Y X Y    Y|X Y    Y X|Y    Y|X|Y


X Y Y    X|Y Y    X Y|Y    X|Y|Y
-----    -+---    ---+-    -+-+-
Y X Y    Y|X Y    Y X|Y    Y|X|Y

例如,如果在第 2 列和第 3 列之间设置一堵围栏,则划分的区画为:

XY
YX
Y
Y

每个区画都正好有两个 Y,因此满足条件。

如果在第 1 行与第 2 行之间以及第 1 列与第 2 列之间设置围栏,则划分的区画为:

X
YY
Y
XY

这些区画中,除第二个外,其余都没有正好两个 Y,因此不满足条件。

样例解释 2

无论如何设置栅栏,都无法满足条件,故答案为 0。

样例解释 3

请输出满足条件的栅栏设置方式总数,对 998244353998244353 取模。

由 ChatGPT 4.1 翻译

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

首页