大体意思: 一个人先写一个01的数列,另一个人不停的问a,b之间的偶数是奇还是偶,
问另一个人的回答到第几步时有可能一直为对的?
题目的解题思路:
(1) 因为数据范围远大于查询次数,所以,可以采取开放式寻址法中中的线性探查来Hash.
(1) 设N(a)为序列中[1,a]之间的1的个数, N(a,b)为奇说明,N(a-1)与N(b)的奇偶性为异. 思路为并查集,
即如果探得N(a-1)与N(b)为异,则将a-1与b+10000取UNION操作,而a-1+10000与b取UNION操作.
即保持i与i+10000异奇偶.
本文介绍了一种解决01数列查询问题的算法,利用Hash表和并查集实现高效查询区间内0的数量的奇偶性。通过线性探测解决冲突,并采用按秩合并优化并查集操作。
440

被折叠的 条评论
为什么被折叠?



