AT_arc157_d.[ARC157D] YY Garden
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在一个 H 行 W 列的网格中,每个格子上写有字符 X 或 Y。从上到下第 i 行,从左到右第 j 列的格子记作 (i,j)。网格中的字符由 H 个字符串 S1,S2,…,SH 给出,第 i 个字符串 Si 的第 j 个字符表示格子 (i,j) 上的字符。
你可以在相邻的每两行之间和每两列之间设置横向或纵向的栅栏,栅栏可以相互交叉。设置栅栏后,“从某个格子出发,只能通过上下左右相邻的格子且不跨越栅栏所能到达的所有格子”被定义为一个区画(请参考样例 1 的说明)。
栅栏的设置方式共有 2H−1×2W−1 种。请计算其中满足下述条件的设置方式的个数,并对 998244353 取模输出。
条件: 每个区画中恰好包含 2 个写有 Y 的格子。
输入格式
输入以如下格式从标准输入给出。
H W
S1
S2
⋮
SH
输出格式
输出满足条件的栅栏设置方式总数,对 998244353 取模。
输入输出样例
输入#1
2 3 XYY YXY
输出#1
2
输入#2
2 3 XYX YYY
输出#2
0
输入#3
2 58 YXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXY YXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXYXXY
输出#3
164036797
说明/提示
限制条件
- 1≤H≤2000
- 1≤W≤2000
- Si (1≤i≤H) 是仅由
X和Y组成的长度为 W 的字符串。
样例解释 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
请输出满足条件的栅栏设置方式总数,对 998244353 取模。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?