![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构_Hash
just_sort
Acdream.
展开
-
初识Hash
哈希表提供这么一种其它数据结构并不擅长的操作: “在理想情况下,能用常量时间查找到指定值的数据”。 普通数据结构如线性表、树、图等,其结点内的数据与数据所存储的位置之间的关系是随机的,所以要想提供“查找某已知值的数据的位置”只能通过“比较”方式进行,如:对于未排序的线性表,要从头至尾逐一比较是否“==”;对于二分查找,则要比较“>”“<”还是“==”。这样,时间复杂度是n或者logn。 而哈原创 2016-03-05 18:15:40 · 346 阅读 · 0 评论 -
BZOJ 2462 BeiJing 2011 矩阵模板 二维hash
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2462 题意: [Submit][Status][Discuss] Description给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在 原矩阵中出现过。 所谓01矩阵,就是矩阵中所有元素不是0就是1。 Input输入文件的第一行为M、N、A原创 2017-04-07 15:18:31 · 804 阅读 · 0 评论 -
BZOJ 3483 SGU505 Prefixes and suffixes(询问在线版) Hash,预处理,神做法
DescriptionGAL发现了N个特殊的字母序列,由小写字母组成。小L认为,对于两个字符串s1,s2,若s1是某个特殊序列的前缀,s2是该特殊序列的后缀,则称s1,s2被这个序列拥有。现在小L给出M对s1,s2,对于每对字符串,问它们被几个特殊序列拥有。Input第1行一个整数N。接下来N行,每行一个字符串,代表N个特殊序列。第N+2行一个整数M。接下来M行每行一对s1,s2用空格隔开。S1,s原创 2017-04-07 19:31:21 · 992 阅读 · 0 评论 -
BZOJ 1567: [JSOI2008]Blue Mary的战役地图 Hash+set
[Submit][Status][Discuss] Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏。她正在设法寻找更多的战役地图以进一步提高自己的水平。 由于Blue Mary的技术已经达到了一定的高度,因此,对于用同一种打法能够通过的战役地图,她只需要玩一张,她就能了解这一类战役的打法,然后她就没有兴趣再玩儿这一类地图了。而网上流传的地图有很原创 2017-04-07 20:05:55 · 521 阅读 · 0 评论 -
BZOJ 3207: 花神的嘲讽计划Ⅰ Hash,预处理或者在线主席树
Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的!【hqz:大笨J】” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天DJ在给吾等众蒟蒻讲题,花神在一边做题无聊,就跑到了一边跟吾等众蒟蒻一起听。以下是部分摘录: 1. “J你在讲什么!” “我在讲XXX!” “哎你傻不傻的!这么麻烦,直接XXX再X原创 2017-04-08 21:16:05 · 437 阅读 · 0 评论 -
1414: [ZJOI2009]对称的正方形 Hash+二分
Description Orez很喜欢搜集一些神秘的数据,并经常把它们排成一个矩阵进行研究。最近,Orez又得到了一些数据,并已经把它们排成了一个n行m列的矩阵。通过观察,Orez发现这些数据蕴涵了一个奇特的数,就是矩阵中上下对称且左右对称的正方形子矩阵的个数。 Orez自然很想知道这个数是多少,可是矩阵太大,无法去数。只能请你编个程序来计算出这个数。 Input 文件的第一行为两个整数n和m原创 2017-04-29 11:49:42 · 567 阅读 · 0 评论 -
Codeforces Beta Round #4 (Div. 2 Only) C. Registration system hash
题目链接:http://codeforces.com/problemset/problem/4/C题意:如果这个词第一次出现,输出ok否则输出这个词,并且输出在此之前这个词出现了多少次解法:直接双Hash//UVALive 6959#include <bits/stdc++.h> using namespace std; typedef long long LL; int gethash1(char原创 2017-04-06 13:16:19 · 479 阅读 · 0 评论 -
HDU 4287 Intelligent IME hash
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4287题意:用9宫格敲了N次,给m个字符串,问你每次敲击,能够敲出多少个单词解法:Hash或者map模拟一下,水题//HDU 4287#include <bits/stdc++.h> using namespace std; map <int, int> mp1; string s[5010]; map原创 2017-04-06 14:28:01 · 446 阅读 · 0 评论 -
HDU 4821 String hash
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4821题意:给你一个字符串,让你找到有多少个长度为m*l的子串,由m个长度为l的不同的串构成的解法:hash一下之后,就直接暴力找就好了但是暴力不是直接枚举串的起点,这样是要T的。其实对于已经找到的一个子串,我们只需要除去他的最开头的那个小子串,加上它末尾后一个小子串,不断循环下去,就可以得到一系列的子串原创 2017-04-06 21:16:00 · 633 阅读 · 0 评论 -
BZOJ 3555: [Ctsc2014]企鹅QQ Hash乱搞
DescriptionPenguinQQ是中国最大、最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志、群、即时通讯、相册、集市等丰富强大的互联网功能体验,满足用户对社交、资讯、娱乐、交易等多方面的需求。 小Q是PenguinQQ网站的管理员,他最近在进行一项有趣的研究——哪些账户是同一个人注册的。经过长时间的分析,小Q发现同一个人注册的原创 2017-04-07 14:20:21 · 418 阅读 · 0 评论 -
单词替换 KMP 简单应用
【题意】 给出一个仅包含小写字母的字符串s,和单词A,B。把s中所有的出现过的A替换为B。 【解题思路】简单KMP算法的应用,每一个匹配的地方注意输出替换后的字符串就可以了。 【补充】 Sample Input 3 aaa a b aaa aa b ababa aba cd Sample Output bbb ba cdba 【AC代码】 #include #incl原创 2016-05-24 10:34:55 · 576 阅读 · 0 评论 -
POJ 1840 Eqs
题目门 【题意】题意非常简单,问你能找到多少个x,满足a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 。 【解题思路】如果是暴力枚举的话,复杂度高达100^5,明显不符合时限要求,故而考虑先枚举两项的和,然后枚举3项的和,然后统计在这些项中存在多少种相等的情况。说白了,就是简单hash,或者枚举+二分。 【AC代码】我这里写了个hash版本的,原创 2016-03-05 18:36:29 · 339 阅读 · 0 评论 -
POJ 3349 Snowflake Snow Snowflakes
题目门 【题意】给了n片雪花,判断其中是否有两个或则以上相同,有的话就输出Twin snowflakes found. 否则输出没找到的信息。 【解题思路】一个非常简单的问题,用map映射一下就好了,然后关键是顺时针过河逆时针的去判断两片雪花是否完全相同。 网上的题解都把这道题贴到hash里了,我也暂且把它放在hash里了。 【AC代码】#include #include #inclu原创 2016-03-05 18:47:49 · 762 阅读 · 0 评论 -
POJ 1200 Crazy Search
题目传送门 【题意】给了一个字符串,和n,m,这字符串里最多有m个不同的字符,现在要求有多少个长度为n且不同的字串。 【坑点】一直在看数据范围,题上 怎么没给呀,只给了字符串长度的数据范围,最后看Disscuss里面的人说,input里解释了一切,果然input里的不超过16M说明了一切,解决了这个问题就很好解决了,把每一个长度为n的字符串hash成一个m进制的整数,然后判重并记录次数。 【原创 2016-03-06 15:12:37 · 374 阅读 · 0 评论 -
POJ 2785 4 Values whose Sum is 0
题目传送门 【题意】题意很简单,给了n*4的矩阵,问有多少种情况满足每一列取一个某个数字,加起来为0. 【解题思路】 Hash. 【AC代码】#include #include #include #include using namespace std; #define CLE(a,b) memset(a,b,sizeof(a)) #define MEC(a,b) memcpy(a,原创 2016-03-06 17:28:33 · 327 阅读 · 0 评论 -
POJ 3640 Conformity(Hash)
Description Frosh commencing their studies at Waterloo have diverse interests, as evidenced by their desire to take various combinations of courses from among those available. University administr原创 2016-03-08 11:24:14 · 996 阅读 · 0 评论 -
POJ 2002 Squares
题目传送门 【题意】给出n个二维平面上的坐标,求出这n个坐标最多能够构成多少个正方形。 【解题思路】自己完全不会做,只好看网上题解了,现在把Hash和二分的解法展示如下,首先说一说解题的思路, 通过n最大为1000可以推测,应该是n^2左右的效率,所以我们先枚举两个点,然后通过这两个点再求出另外两个点的坐标,在输入的集合中查找是否存在这两个点,如果存在的话就可以构成一个正方形。 但原创 2016-03-08 14:58:42 · 461 阅读 · 0 评论 -
字符串散列常用板子
【转载来源】http://bbs.byr.cn/#!article/ACM_ICPC/21959 【模板】 #define M 249997 #define M1 1000001 #define M2 0xF0000000 // RS Hash Function unsigned int RSHash(char*str) { unsigned int b=378551 ;转载 2016-03-08 15:24:57 · 449 阅读 · 0 评论 -
POJ 2503 Babelfish(Hash)
【题目来源】题目传送门 【题意】上篇文章已经说明过题意了,那里的map裸跑1500ms+,用assign优化之后跑出900ms+,尝试hash跑出188ms,时间上的优化是非常巨大的。 【本题AC代码,Hash】 #include #include #include #include using namespace std; #define CLE(a,b) memset(a,b,s原创 2016-03-08 16:55:44 · 505 阅读 · 0 评论 -
SGU 4554 Boring Game 来自队友的神奇随机Hash
题目链接:http://acm.scu.edu.cn/soj/problem.action?id=4554DescriptionOne day, Yutta and Rikka were playing a game. There were a N*M matrix. Every time Yutta picked up a submatrix which has w elements, and原创 2017-04-26 10:51:05 · 702 阅读 · 0 评论