题目
给$T$个$P \times Q$的矩阵。问其中有多少个在$N\times M$的矩阵中出现过。
矩阵中元素只有2种。
数据范围
$1\leq N,M\leq 1000,1\leq P,Q\leq 50,1 \leq T\leq 100$
做法
滚动Hash
对$T$个矩阵进行二维的Hash,再对$N\times M$的矩阵中的$P\times Q$大小的子矩阵进行Hash,统计个数即可。
本题Hash用的是滚动Hash,行和列取的基数$B$不相同,并且模数取为$2^{64}$,用自然溢出省略取模操作。
前缀Hash
计算二维Hash前缀,其余方法同上。
代码
滚动Hash
|
|
前缀Hash
|
|