hash
jiangjiashi
这个作者很懒,什么都没留下…
展开
-
Crazy Search (P1200)
简单的HASH,可是要注意,这里不全是小写字母,所以要用数组a[ ]转换一下。 #include #include #include #include using namespace std; //freopen("C://i.txt","r",stdin); #define N 16000001 int name[N]; bool hash[N]; int n,nc; cha原创 2012-08-02 14:25:12 · 600 阅读 · 0 评论 -
(哈希) Gold Balanced lineup (P3274)
这个是哈希的折叠法,,这样的题,发现用这样的方法可以大大的提高计算效率。 其中关键代码p值的计算是像代码中写的一样,都可以,只要找得比较乱就行。 #include #include #include #include #include #include #include #include using namespace std; #define maxn 100010转载 2012-07-07 23:25:30 · 437 阅读 · 0 评论 -
(哈希) Snowflake snow snowflages(P3349)
第一次做这样的题,这里可以映射到很多的值,而且很可能有重复。把以把相同的对应的哈希值进行存储,大大地节省的搜索的时间。 #include #include #include #include #include #include #include #include using namespace std; #define M 14997 #define N 15001 int原创 2012-07-08 18:11:24 · 446 阅读 · 0 评论 -
(哈希)Squares (p2002)
这个要注重二分的查找,,。先是二分查找的方法, #include #include #include #include #include #include #include #include using namespace std; #define N 1001 struct my { int x,y; bool operator<(my b) { if (b.x!=x)原创 2012-07-08 22:09:07 · 407 阅读 · 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 · 1654 阅读 · 0 评论