CF1672G.Cross Xor
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There is a grid with r rows and c columns, where the square on the i -th row and j -th column has an integer ai,j written on it. Initially, all elements are set to 0 . We are allowed to do the following operation:
- Choose indices 1≤i≤r and 1≤j≤c , then replace all values on the same row or column as (i,j) with the value xor 1 . In other words, for all ax,y where x=i or y=j or both, replace ax,y with ax,y xor 1 .
You want to form grid b by doing the above operations a finite number of times. However, some elements of b are missing and are replaced with '?' instead.
Let k be the number of '?' characters. Among all the 2k ways of filling up the grid b by replacing each '?' with '0' or '1', count the number of grids, that can be formed by doing the above operation a finite number of times, starting from the grid filled with 0 . As this number can be large, output it modulo 998244353 .
输入格式
The first line contains two integers r and c ( 1≤r,c≤2000 ) — the number of rows and columns of the grid respectively.
The i -th of the next r lines contain c characters bi,1,bi,2,…,bi,c ( bi,j∈{0,1,?} ).
输出格式
Print a single integer representing the number of ways to fill up grid b modulo 998244353 .
输入输出样例
输入#1
3 3 ?10 1?? 010
输出#1
1
输入#2
2 3 000 001
输出#2
0
输入#3
1 1 ?
输出#3
2
输入#4
6 9 1101011?0 001101?00 101000110 001011010 0101?01?? 00?1000?0
输出#4
8
说明/提示
In the first test case, the only way to fill in the ? s is to fill it in as such:
010111010This can be accomplished by doing a single operation by choosing (i,j)=(2,2) .
In the second test case, it can be shown that there is no sequence of operations that can produce that grid.