哈希
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【gmoj3508】【7.12提高B组T1】好元素【hash】
分析70%数据: n2预处理两个数的和,再枚举,因为每一个元素值比较小,开一个数组来存储是否存在。100% :因为数值比较大,所以考虑用哈希定位然后判断。每次输入都判断编号比他小的两个数的和是否符合条件,看看这个数是不是好元素。然后将它加进去与前面的值求出新的几组和,供下面的数判断。注意哈希有关函数insert,locate,find上代码#include<iostream>#include<cstdio>#include<algorithm>#in..原创 2021-07-12 20:02:10 · 119 阅读 · 0 评论 -
【ybtoj 高效进阶 2.2】D.单词背诵【哈希】
分析哈希+统计上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int p=313,mod=1000007;int n,m,r,a[1001],b[100001],v[2000001],u[2000001],lv[2000001],maxn,num,ans=2147483647;strin..原创 2021-07-08 20:21:01 · 104 阅读 · 0 评论 -
【ybtoj 2.2 hash】对称正方形
枚举正方形的中心点然后尽量向外扩展对于判断一个正方形是否上下左右对称。只需要左右翻转,上下反转,看一下是否还是与原来相等的三角形。先预处理二维前缀和(按照哈希方法,把一个字符串看成T进制数,然后mod一个很大的质数用于定位)。然后就可以O(1)求出某个小矩阵的哈希值,然后进行翻转。二分的是最长的能扩展到的地方。用于判断是否能继续扩展,如果不能,最长的地方为mid-1(mid是现在扩展到的地方)每个判断成功的矩阵都能使ans++不用去重,因为枚举到的正方形要不是中心点不同,要不是大小不同..原创 2021-02-06 12:38:43 · 231 阅读 · 0 评论 -
【ybtoj 高效进阶 2.2】B.回文子串【字符串哈希】
分析求最长回文子串不是manacher更牛¿回文串分两类:奇数长度和偶数长度。于是可以分类处理。奇回文串a[1]a[1]a[1]~a[(m+1)/2]=reverse(a[(m+1)/2+1]a[(m+1)/2]=reverse(a[(m+1)/2+1]a[(m+1)/2]=reverse(a[(m+1)/2+1] tototo m)m)m)偶回文串a[1,(m/2)]=reverse(a[(m/2)+1],m)a[1,(m/2)]=reverse(a[(m/2)+1],m)a[1,(...原创 2021-01-30 07:55:01 · 195 阅读 · 0 评论 -
【ybtoj 高效进阶 2.2】A.字符串哈希【哈希】
分析字符串哈希的模板题。重点就是要注意定位的那个地方,通过mod一个较大的质数来防止出错。上代码原创 2021-01-30 07:24:53 · 132 阅读 · 0 评论 -
【ssl1127】方程的解数【较难的哈希表】【DFS深搜】
DescriptionInput第1行包含一个整数n。第2行包含一个整数M。第3行到第n+2行,每行包含两个整数,分别表示ki和pi。两个整数之间用一个空格隔开。第3行的数据对应i=1,第n+2行的数据对应i=n。Output仅一行,包含一个整数,表示方程的整数解的个数。Sample Input31501 2-1 21 2Sample Output178hint1<=n<=6;1<=M<=150方程的整数解的个数小于231。★本题中,指数原创 2020-07-22 11:08:07 · 268 阅读 · 0 评论 -
【洛谷P1102】A-B数对【二分】【哈希】
题目描述出题是一件痛苦的事情!相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈!好吧,题目是这样的:给出一串数以及一个数字 CC,要求计算出所有 A - B = CA−B=C 的数对的个数(不同位置的数字一样的数对算不同的数对)。输入格式输入共两行。第一行,两个整数 N, CN,C。第二行,NN 个整数,作为要求处理的那串数。输出格式一行,表示该串数中包含的满足 A - B = CA−B=C 的数对的个数。输入输出样例输入 #14原创 2020-07-20 19:24:26 · 596 阅读 · 2 评论 -
【SSL1062】 统计数字【暴力】【哈希】
Description某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。Input输入包含n+1行; 第一行是整数n,表示自然数的个数; 第2~n+1每行一个自然数。Output输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。Sample Inp原创 2020-07-19 21:54:27 · 182 阅读 · 0 评论 -
【ssl1692】USACO魔板 (BFS-HASH)
Description在成功地发明了魔方之后,拉比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5 我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3,4,5,6,7,8)来表示。这是基本状态。 这里提供三种基本操作,分别用大写字母“A”,“B”,“C”来表示(可以通过这些操作改原创 2020-07-19 19:07:11 · 184 阅读 · 0 评论 -
【SSL1125】集合【哈希表】【二分】
Description给定两个集合A、B,集合内的任一元素x满足1 ≤ x ≤ 109,并且每个集合的元素个数不大于105。我们希望求出A、B之间的关系。任 务 :给定两个集合的描述,判断它们满足下列关系的哪一种:A是B的一个真子集,输出“A is a proper subset of B”B是A的一个真子集,输出“B is a proper subset of A”A和B是同一个集合,输出“A equals B”A和B的交集为空,输出“A and B are disjoint”上述情况都不是原创 2020-07-19 15:28:14 · 140 阅读 · 0 评论