哈希
文章平均质量分 52
哈希函数,哈希桶
seez
njfu
展开
-
239.奇偶游戏(拓展域,带边权)
思路:由区间和想到前缀和思想--》离散化--》由于传递性+无向图,想到并查集 分析:s表示前缀和数组,S表示序列 每次检查区间中有偶数个1还是奇数个1的时候,我们可以发现 S[l~r]有奇数个1,等价于s[r]-s[l-1]有奇数个1,等价于s[r]与s[l-1]奇偶性相异 S[l~r]有偶数个1,等价于s[r]-s[l-1]有奇数个1,等价于s[r]与s[l-1]奇偶性相同 那么,我们就可以得出并查集的关系,因为具有传递性,使用带边权的并查集可以表示两个点之间的关系,通过不断地加入新的点到并查..原创 2022-02-08 20:52:42 · 2588 阅读 · 0 评论 -
牛客寒假训练营 3 L(模拟,哈希)
前置:vector之间可以比较,map可以存储vector和任意的数据结构 分析:只要把所选关键字相同的元素放在一起,就是一组 通过这样子,我们可以想到哈希表,哈希表的first存储关键字,second存储个数,如果需要组数的话,返回size就可以了 由于一组的分类是根据所选关键字是否相同来比较的,所以可以用vector来存储,通过vector之间的比较,我们就可以知道是否两个记录是否相同了 读入使用了*,加了*会被忽略 scanf("%*s %*s %*s %*s %*s %*s %s",..原创 2022-02-07 14:07:00 · 213 阅读 · 0 评论 -
牛客寒假集训营 1 H 牛牛看云 (哈希桶+组合数学)
题目的数据范围 n很大,而ai很小,如果用ai来枚举的话,ai^2 只有10^6,符合要求 可以先用桶装载每个ai的数量,然后再利用组合数学进行枚举 首先,为什么可以用桶,证明: = ++... 可以发现 对于两个任意的 ai aj 被选中作为一对当且仅当只有一次 发现规律 每一对i,j都当且仅当被匹配一次 所以 对于 0<=i<=1000 i<=j<=1000 对于i==j 对于i!=j #in...原创 2022-01-24 23:08:08 · 302 阅读 · 0 评论 -
1236. 递增三元组(二分,桶+前缀和)
直接枚举肯定会超时,只能采取优化,于是采取了二分查找或者桶+前缀和的办法 二分查找 要减少枚举次数,应该是枚举b数组,然后分别查找a,c数组中的元素 对于a数组而言,查找最后一个比b[i]小的位置==第一个b[i]的位置 对于b数组而言,查找第一个比b[i]大的位置==最后一个b[i]的位置+1 为什么a数组第一个b[i]位置不用加一? 因为数组下标从0开始,当遇到第一个b[i]位置j,说明前面有j个比b[i]小的位置 为什么c数组最后一个b[i]位置要加一? 因为数组下标从0开始,当遇到..原创 2022-01-24 22:21:00 · 478 阅读 · 0 评论