hash
jiangjiashi
这个作者很懒,什么都没留下…
展开
-
Crazy Search (P1200)
简单的HASH,可是要注意,这里不全是小写字母,所以要用数组a[ ]转换一下。#include#include#include#includeusing namespace std;//freopen("C://i.txt","r",stdin);#define N 16000001int name[N];bool hash[N];int n,nc;cha原创 2012-08-02 14:25:12 · 598 阅读 · 0 评论 -
(哈希) Gold Balanced lineup (P3274)
这个是哈希的折叠法,,这样的题,发现用这样的方法可以大大的提高计算效率。其中关键代码p值的计算是像代码中写的一样,都可以,只要找得比较乱就行。#include#include#include#include#include#include#include#includeusing namespace std;#define maxn 100010转载 2012-07-07 23:25:30 · 433 阅读 · 0 评论 -
(哈希) Snowflake snow snowflages(P3349)
第一次做这样的题,这里可以映射到很多的值,而且很可能有重复。把以把相同的对应的哈希值进行存储,大大地节省的搜索的时间。#include#include#include#include#include#include#include#includeusing namespace std;#define M 14997#define N 15001int原创 2012-07-08 18:11:24 · 445 阅读 · 0 评论 -
(哈希)Squares (p2002)
这个要注重二分的查找,,。先是二分查找的方法,#include#include#include#include#include#include#include#includeusing namespace std;#define N 1001struct my{ int x,y; bool operator<(my b) { if (b.x!=x)原创 2012-07-08 22:09:07 · 403 阅读 · 0 评论 -
构造哈希函数的方法
1.直接地址法 直接地址法,就是选取关键字的某个线性函数值为哈希地址,这类函数是一一对应函数,不会产生冲突,但要求地址集合与关键字集合大小相同,因此,对于较大的关键字集合不适用。哈希函数的一般形式为:Hash(key)=a*key+b (a、b为常数)例:关键字集合为{100,300,500,700,800,900},选取哈希函数为 Hash(key)=key/100,则建转载 2012-07-07 23:12:27 · 1644 阅读 · 0 评论