AcWing - 156 矩阵(二维哈希)
2021-01-14 20:11
标签:set 链接 desc 过程 har color res get a* 题目链接:矩阵 题意:给定一个$m$行$n$列的$01$矩阵$($只包含数字$0$或$1$的矩阵$)$,再执行$q$次询问,每次询问给出一个$a$行$b$列的$01$矩阵,求该矩阵是否在原矩阵中出现过 思路:二维哈希,从矩阵的右下角为低位到矩阵的左上角为高位,先求出每一行的一维哈希值$h[i][j]$,在$a$行$b$列的$01$矩阵向下移动的过程中,先向下扩展成$a+1$行$b$列的$01$矩阵,再将最上面的一行减去,这样矩阵就会向下移动一格,设原来$a$行$b$列矩阵的哈希值为$t$,所以新矩阵的哈希值 $$res=t*p[b]+(h[i+1][j]-h[i+1][j-b]*p[b])-((h[i-a][j]-h[i-a][j-b]*p[b])*p[a*b])$$ 用$set$存储每个子矩阵的哈希值,求出询问矩阵的哈希值,判断是否出现过 其他二维哈希的题目,令矩阵的右下角为低位、矩阵的左上角为高位,然后推一下公式即可。 AcWing - 156 矩阵(二维哈希) 标签:set 链接 desc 过程 har color res get a* 原文地址:https://www.cnblogs.com/zzzzzzy/p/12250473.html#include
文章标题:AcWing - 156 矩阵(二维哈希)
文章链接:http://soscw.com/index.php/essay/41926.html