BC # 32 1002题意:给出一个数组 a 和一个数 K ,问是否存在数对( i , j ),使 ai- ai + 1+……+ (-1)j - iaj;对于这道题,一开始就想到了是前缀和,但是如果只是记录下前缀和数组,那么查找就会成为一个大问题。补题的时候一开始考虑用 hash 数组或者是 se...
分类:
其他好文 时间:
2015-03-11 23:19:55
阅读次数:
205
1、定义:Hash表是一种重要的数据结构。它通过将关键字通过hash函数映射到一个内存区,通过关键字就可以直接访问该节点的值。其查找的时间复杂度为O(1)Hash表也叫做散列表。它通过将关键字的值(key)通过hash函数映射到内存区中,然后在响应的内存区中可以存入相应的值(value),也就是我们...
分类:
其他好文 时间:
2015-03-10 21:11:45
阅读次数:
110
维护前缀和sum[i]=a[0]-a[1]+a[2]-a[3]+…+(-1)^i*a[i]枚举结尾i,然后在hash表中查询是否存在sum[i]-K的值。如果当前i为奇数,则将sum[i]插入到hash表中。上面考虑的是从i为偶数为开头的情况。然后再考虑以奇数开头的情况,按照上述方法再做一次即可。不...
分类:
其他好文 时间:
2015-03-08 20:00:05
阅读次数:
175
bc32 1002 预处理 哈希
题意:
给定一个数组(a[0],a[1],a[2],a[n-1])和一个整数K,请来判断一下是否存在二元组(i,j)(0
限制:
1
思路:
先从前到后求sum[i],然后从后往前扫,每到一个sum[i],判断sum[i]+k是否在后面的sum[j](j>i)出现过,如果出现过则yes,否则把sum[i]插入hash表中用于后续的查询。...
分类:
其他好文 时间:
2015-03-08 17:12:36
阅读次数:
135
题目链接:HDOJ - 5183题目分析分两种情况,奇数位正偶数位负或者相反。从1到n枚举,在Hash表中查询 Sum[i] - k ,然后将 Sum[i] 加入 Hash 表中。BestCoder比赛的时候我写了 STL map, 然后TLE...注意: Hash负数的时候 % 了一个质数,得到的...
分类:
其他好文 时间:
2015-03-08 10:28:59
阅读次数:
142
代码引用kuangbin大神的,膜拜第一次见到hashmap和外挂,看来还有很多东西要学维护前缀和sum[i]=a[0]-a[1]+a[2]-a[3]+…+(-1)^i*a[i]枚举结尾i,然后在hash表中查询是否存在sum[i]-K的值。如果当前i为奇数,则将sum[i]插入到hash表中。上面...
1.HashMap的内部实现机制HashMap是对数据结构中哈希表(Hash Table)的实现,Hash表又叫散列表。Hash表是根据关键码Key来访问其对应的值Value的数据结构,它通过一个映射函数把关键码映射到表中一个位置来访问该位置的值,从而加快查找的速度。这个映射函数叫做Hash函数,存...
分类:
其他好文 时间:
2015-03-05 23:41:49
阅读次数:
159
【 声明:版权全部,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 hash表,有时候也被称为散列表。个人觉得,hash表是介于链表和二叉树之间的一种中间结构。链表使用十分方便,可是数据查找十分麻烦;二叉树中的数据严格有序,可是这是以多一个指针作为代价的结果。ha...
分类:
编程语言 时间:
2015-03-02 22:14:57
阅读次数:
191
HashSet根据每个对象的哈希码值(调用hashCode()获得)用固定的算法算出它的存储索引,把对象存放在一个叫散列表的相应位置(表元)中:存对象时,hashSet集合首先调用该对象的hashCode方法来获得该对象的hashCode值,与hash表中的值进行比较。如果不存在,则直接把该对象存入集合..
分类:
编程语言 时间:
2015-02-28 00:24:45
阅读次数:
179
题目大意:给出A,B,C,求A^x=B(mod C)的最小x的值。
思路:著名的BSGS算法。将C拆分成根号块,先对一个根号内的东西暴力插入一个Hash表中(别问我为什么不用map,因为这个题卡map。。。
另我们要求的x=i * m + j,原式可以写成A^(i * m) * A^j = B(mod C)。这是ax=b(mod c)的形式我们只需要枚举i,然后看有没有符合要求的j就可...
分类:
其他好文 时间:
2015-02-26 16:44:29
阅读次数:
141