随笔分类 -  哈希

摘要:Gold Balanced LineupTime Limit: 2000MSMemory Limit: 65536KTotal Submissions: 10360Accepted: 3086DescriptionFarmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to narrow down the list of features shared by his cows to a list of only K different features (1 ≤ 阅读全文
posted @ 2013-05-20 17:45 再见~雨泉 阅读(797) 评论(1) 推荐(1)
摘要:http://poj.org/problem?id=2002DescriptionA square is a 4-sided polygon whose sides have equal length and adjacent sides form 90-degree angles. It is also a polygon such that rotating about its centre by 90 degrees gives the same polygon. It is not the only polygon with the latter property, however, 阅读全文
posted @ 2013-05-16 11:31 再见~雨泉 阅读(1106) 评论(0) 推荐(1)
摘要:http://poj.org/problem?id=1200题目大意就是将一个字符串分成长度为N的字串。且不同的字符不会超过NC个。问总共有多少个不同的子串。最初看了半天一直没看明白与哈希有什么关系(相信也有人和这个菜鸟我一样吧),无奈之下只好去搜结题报告,突然才明白原来那个NC作用大大。最后采用的办法就是以nc作为进制,把一个子串化为这个进制下的数,再用哈希判断。由于题目说长度不会超过16,000,000 所以哈希长度就设为16000000就行。另外为每一个字符对应一个整数,来方便转化。如题目中的daababac与整数对应之后就是12232324然后子串daa->122->011 阅读全文
posted @ 2013-05-15 21:11 再见~雨泉 阅读(2212) 评论(0) 推荐(0)
摘要:哈希函数的构造方法本文阐述了哈希函数的构造方法有很多,但应注意两个原则:第一,函数值应在1至记录总数之间;第二,尽可能避免冲突。设要存放的数据元素有n个,存放数据元素的内存单元有m个,设计哈希函数的目标就是要使通过哈希函数得到的n个数据元素的哈希地址尽可能均匀地分布在m个连续内存单元上,同时使计算过程尽可能简单以达到尽可能高的时间效率。引言构造哈希函数的方法很多。如何构造一个“好”的哈希函数是很强的技术性和实践性问题,这里的“好”指的是哈希函数构造比较简单,并且用此哈希函数产生的映射所发生的冲突可能性最小,换句话说一个好的哈希函数能将给定数据集合均匀地映射到给定的地址区间中。Hash的原意是“ 阅读全文
posted @ 2013-05-06 13:16 再见~雨泉 阅读(18297) 评论(1) 推荐(2)
摘要:链接http://poj.org/problem?id=2785继续上一篇的思路做的,结果。。。第一次MAXN=1000007超时第二次MAXN=10000007 Time 8063 Ms Memory 164760 K 险过,=.=!先附上代码,再寻求其他方法吧 1 #include<cstdio> 2 #include<cstring> 3 #define mem(a) memset(a,0,sizeof(a)) 4 #define MAXN 10000007 5 #define maxn 16000000 6 int hash[MAXN+5],next[maxn+ 阅读全文
posted @ 2013-04-24 17:25 再见~雨泉 阅读(1126) 评论(0) 推荐(0)
摘要:地址链接http://poj.org/problem?id=1840a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0等价于 a1x13+ a2x23+ a3x33=a4x43+ a5x33所以使用哈希储存前三项的值,而数组开到101^3=1030301就够了有几个需要注意的地方就是x不能等于0(应为这个我纠结了好久,所以看题啊啊~~);然后就是求解的个数,所以在用哈希存前三个数的和时,就不能完全(直接将其替代),那样将会丢掉一种解,所以我的方法就是直接在sum数组中存101^3个数,在搜索的时候一条哈希值相等的链就要搜到尾,找出共有多少个(其实也可以用个数组记录到目前为止 阅读全文
posted @ 2013-04-24 16:37 再见~雨泉 阅读(1190) 评论(0) 推荐(0)
摘要:题目链接http://poj.org/problem?id=3349题意是说,有n片雪花,每片雪花都是有6个角,给出每片雪花每个角的长度,问里面有没有一样的雪花(给出数据的顺序是没有确定的)。虽然使用了哈希查找表,却还是用了2400多Ms,但还是过了。这里采用hash数组作为表头,他的下标作为哈希值用于快速定位,next存放的是当hash下标相同时的另一个下标,把他们连接起来,可用于解决矛盾。如10个数a[]=(下标从1开始,之后会知道为什么)123456789 ,321654853 ,136977123 ,111234682 ,123458536222222222 ,454646546 ,7 阅读全文
posted @ 2013-04-16 22:20 再见~雨泉 阅读(462) 评论(0) 推荐(0)