问题 3673 --种花

3673: 种花

时间限制: 1 Sec  内存限制: 256 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

小 C 决定在他的花园里种出CCF 字样的图案,因此他想知道 C 和 F 两个字母各自有多少种种花的方案;不幸的是,花园中有一些土坑,这些位置无法种花,因此他希望你能帮助他解决这个问题。

花园可以看作有n*m个位置的网格图,从上到下分别为第1到第n行,从左到右分别为第1列到第m列,其中每个位置有可能是土坑,也有可能不是,可以用a[i,j]=1 表示第i行第j列这个位置有土坑,否则用a[i,j]=0表示这个位置没土坑。

一种种花方案被称为C-的,如果存在x1,x2∈[1,n],以及y0,y1,y2[1,m],满足 x1+1<x2,并且y0<y1,y2m,使得第x1的第y0到第y1、第x2的第y0到第y2以及第y0的第x1到第x2不为土坑,且只在上述这些位置上种花。

一种种花方案被称为F-的,如果存在 x1,x2,x3[1,n],以及y0,y1,y2[1,m],满足x1+1<x2<x3,并且y0<y1,y2<=m,使得第x1的第y0到第y1、第x2的第y0到第y2以及第y0的第x1到第x3不为土坑,且只在上述这些位置上种花。

样例一解释中给出了 C- 形和 F- 形种花方案的图案示例。

现在小 C 想知道,给定 n,m 以及表示每个位置是否为土坑的值{a[i,j]},C- 形和 F- 形种花方案分别有多少种可能?由于答案可能非常之大,你只需要输出其对 998244353 取模的结果即可,具体输出结果请看输出格式部分。

输入

第一行包含两个整数T,id分别表示数据组数和测试点编号。如果数据为样例则保证id=0

接下来一共T组数据,在每组数据中:

第一行包含四个整数 n,m,c,f,其中 n,m 分别表示花园的行数、列数,对于 c,f的含义见输出格式部分。

接下来 n行,每行包含一个长度为m且仅包含0和1的字符串,其中第 i个串的第j个字符表示a[i,j],即花园里的第i行第j列是不是一个土坑。

输出

设花园中 C-C- 形和 F-F- 形的种花方案分别有Vc 和Vf种,则你需要对每一组数据输出一行用一个空格隔开的两个非负整数,分别别表示 (c*Vc)mod998244353(f*Vf)mod998244353 ,其中amodP 表示a对p取模后的结果。

样例输入

1 0
4 3 1 1
001
010
000
000

样例输出

4 2

提示


对于所有数据,保证:1T5,1n,m10^3,0c,f1,a[i,j]{0,1}



QQ截图20221130150452.png








来源

[提交][状态]