哈希函数
mountain_k
愿有攀登高山的勇气,也有填平大海的毅力 QQ 850874665
展开
-
poj3349找相同的雪花(哈希)
题目传送门题目大意:给你n个雪花,每个雪花的六个棱都有各自的长度,如果存在两片雪花的每条棱长度对应相同,则输出一句英文,如果不存在就输出另外一句英文,n和长度都比较大。思路:第一次真正接触哈希,查了题解,还没能通过这道题get到哈希的精髓。这道题是把雪花的六个长度加起来取模的值作为哈希值,然后把拥有相同哈希值的雪花归为一类,每一次输入新的雪花,就先找到它的那一类,然后这一类中进行遍历,遍历的方式也...原创 2018-05-09 12:24:16 · 751 阅读 · 0 评论 -
poj3274 找平衡数列(哈希加一点数学思维)
题目传送门题目大意:有n只牛,每只牛有k个属性,接下来n个数字,每个数字的二进制位上的1和0分别表示某种属性的有或者无,然后一个特殊数列就是,一个区间内所有牛的各种属性的总和相等(有e种1属性 e种2属性and so on),问你这排牛的最长的特殊数列长度是多少。思路:看上去像dp,但思路走不通,然后看网上大佬的思路,仿佛推开新世界的大门。数组sum[i][j]表示从的1到i头cow属性j的和。...原创 2018-05-09 19:45:13 · 314 阅读 · 0 评论 -
poj1840 五项式等于0(哈希)
题目传送门题意很好懂,注意一下xi不能等于0思路:智商检测题,一开始想着五重for暴力。。。Orz,后来移向(把a4a5移到右边)了发现减了1e8数量级的复杂度,再次Orz,所以直接三重循环,记录每一次答案,存到哈希表中(多次出现的要++,而且哈希值可能是负的,所以要加上一个比较大的数字),然后再两重循环,ans+=hash【e】就可以了。然而!这样子开的数组会很大,直接int hash[maxn...原创 2018-05-09 22:08:23 · 123 阅读 · 0 评论 -
poj2002 数正方形 (哈希+几何)
题目传送门题目大意:给你一堆点,问你能组成几个正方形。思路:一开始想的是用对角线的长度来当哈希的key,但判断正方形会太复杂,然后就去找了一下正方形的判断方法,发现已知: (x1,y1) (x2,y2) 则: x3=x1+(y1-y2) y3= y1-(x1-x2) x4=x2+(y1-y2) y4= y2-(x1-x2) 或 x3=x1-(y1-y2) y3= y1+(x1-x2) x...原创 2018-05-10 16:33:19 · 442 阅读 · 0 评论