哈希算法
文章平均质量分 72
hnjzsyjyj
这个作者很懒,什么都没留下…
展开
-
离散化算法简介
离散化是一种数据处理的技巧,本质上可以看成是一种“哈希”,其保证数据在哈希以后仍然保持原来的“全/偏序”关系。用来离散化的可以是大整数、浮点数、字符串等等。原创 2024-10-27 22:51:33 · 365 阅读 · 0 评论 -
洛谷 P5043:树同构
● 本题是无根树的同构。因此只有当根一样时,同构的两棵无根树的哈希值才相同。本题的一种解法为把以每个结点为根时的哈希值都存进多重集,再把多重集的哈希值算出来,进行比较。原创 2024-05-31 10:19:26 · 374 阅读 · 0 评论 -
UOJ 763:树哈希 ← 链式前向星
● shift 函数:shift 函数是一个将哈希值向左或向右移动特定位数的操作。在某些哈希算法中,这是一个常见的步骤。具体的 shift 函数实现会根据所使用的哈希算法而变化。● 从代码易见,去重函数 unique使用之前,需利用 sort 对数据进行排序。原创 2024-05-30 18:58:57 · 633 阅读 · 0 评论 -
洛谷 P1379:八数码难题 ← BFS+unordered_map(哈希表)
unordered_map(哈希表):https://cplusplus.com/reference/unordered_map/unordered_map/count/原创 2023-12-03 08:11:14 · 202 阅读 · 0 评论 -
康托展开(Cantor Expansion)
康托展开(Cantor Expansion)是一种特殊的哈希函数,是一个相对快速的判重方法,其时间复杂度为O(n^2),其中 n 是集合中元素的个数。康托展开能够判重,依据的是一个集合各元素产生的全部排列中各个排列的位序 id。原创 2023-12-02 20:42:33 · 745 阅读 · 1 评论 -
散列查找 ← 线性探测法处理冲突
散列法在实际应用中,很难完全避免发生冲突,所以选择一个有效的处理冲突的方法是散列法的另一个关键。本算法采用线性探测法处理冲突。原创 2022-11-05 11:31:16 · 2407 阅读 · 2 评论 -
AcWing 840:模拟散列表(拉链法)
散列表,即哈希表,是根据给定关键字(Key)来计算出该关键字在表中存储地址的数据结构。也就是说,散列表建立了关键字与存储地址之间的一种直接映射关系。将关键字映射到表中记录的地址,这加快了查找速度。原创 2023-08-09 13:56:31 · 166 阅读 · 2 评论 -
AcWing 1564:哈希 ← 只具有正增量的二次探测法
本题陈述表示采用“只具有正增量的二次探测法”解决冲突。所谓“只具有正增量的二次探测法”,即p=(H(key)+di*di) mod m。其中:m 为哈希表长度;di 为增量序列 1^2,2^2,3^2,…,k^2(k≤m-1);H(key) 为哈希函数,常采用“除留余数法”构造,即H(key)=key%p。除留余数法,方便编程实现。一般情况下,常选 p 为小于哈希表长度 m 的最大质数。原创 2023-08-10 11:54:17 · 159 阅读 · 0 评论