LA 6893 The Big Painting(矩阵Hash)】的更多相关文章

https://vjudge.net/problem/UVALive-6893 题意: 给出一个小矩阵和大矩阵,在大矩阵中能找到相同的小矩阵. 思路: 矩阵Hash,先对小矩阵计算出它的Hash值,然后处理大矩阵,计算出每个子矩阵的Hash值,然后和小矩阵的Hash值比较是否相等. #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #include<str…
The Big Painting Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=88791 Mean: 给你两个由字符组成的矩阵,让你判断第一个矩阵在第二个矩阵中出现了多少次. analyse: 典型的二维矩阵hash. 这题有两种做法: 第一种:横向hash,然后纵向KMP.时间复杂度是O(N*(N+M)). 第二种:二维hash.直接对两个矩阵做二维hash,然后判断大矩阵的子矩阵的ha…
原题 在大矩阵里找有几个小矩阵出现过,多组数据 将t个矩阵hash值放入multiset,再把大矩阵中每个hash值从multiset里扔出去,这样最后剩在multiset里的值就是没有找到的小矩阵,答案就是t-size了. 矩阵hash: a[i][j]为以i,j为右下角的长为p,宽为q的hash值. 先处理横行的hash,然后再把横行的hash值hash,这样就得到了矩阵的hash值.(注意行和列的base要不一样,不然很容易WA) #include<cstdio> #include<…
#include<stdio.h> #include<string.h> typedef unsigned long long ULL; ; ; int test,n,m,x,y; ULL ans; ][],a[][]; ULL hash; ULL temp[][],Temp[][]; ULL Gethash() { ULL c,d = ; ; i < x; ++i) { c = ; ; j < y; ++j) { c = c*Base1 + a[i][j]; } d…
The Big Painting 题目连接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=122283#problem/J Description Samuel W. E. R. Craft is an artist with a growing reputation. Unfortunately, the paintings he sells do not provide him enough money for his dail…
不懂hash的话:https://www.cnblogs.com/ALINGMAOMAO/p/10345850.html 思路:对于一个大矩阵的每一个子矩阵都对应着一个hash值k, 当k出现2次以上时就满足要求 只是对长度进行二分就可以了. 收获:学会了hash算法 #include<iostream> #include<map> using namespace std; #define ll long long #define ull unsigned long long ;…
题目链接: http://acm.hust.edu.cn/vjudge/problem/129730 The Big Painting Time Limit: 5000MS 题意 给你一个模板串和待匹配串,问模板串在待匹配串中出现的次数(这里的串是二维矩阵) 题解 每一行做前缀和哈希. 统计的时候先按列再按行,这样在做行的话我们可以利用滚动的形式,计算纵向的哈希值(既总的哈希值) 代码 #include<map> #include<cmath> #include<queue&…
#6173. Samjia 和矩阵 题目链接  : 点这里 题目描述 给你一个只包含大写字母的矩阵,求有多少本质不同的子矩阵. 输入格式 第一行包含两个整数 nnn , mmm ,表示矩阵 nnn 行 mmm 列 .接下来 nnn 行描述这个矩阵. 输出格式 只含一个整数,为本质不同的子矩阵个数. 样例 样例输入 3 3 ABA BAA AAA 样例输出 22 数据范围与提示 对于 10% 10\%10% 的数据,n,m≤10 n,m \leq 10n,m≤10:对于 40% 40\%40% 的…
题目链接 序列上的Hash和前缀和差不多,二维Hash也和二维前缀和差不多了. 预处理大矩阵所有r*c的小矩阵hash值,再对询问的矩阵Hash. 类比于序列上\(s[r]-s[l-1]*pow[r-l+1]\),比如\(s[i-r][j-c]\)多算了\(r*c\)次,乘个\(pow[r]*pow[c]\)就行. 用指针替掉数组的一维竟然慢点..好吧毕竟也就一维,数据也不大. //106864kb 1520ms #include <cstdio> #include <cctype>…
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border}\) 思路 代码 \(\text{KMP}\) 匹配 思路 代码 Trie 数据结构 01-Trie 代码 练习题 Hash Bovine Genomics 思路 代码 [TJOI2018]碱基序列 思路 代码 [CQOI2014]通配符匹配 [NOI2017] 蚯蚓排队 思路 代码 KMP See…