摩尔投票法

有时候要求区间众数,自然有常规的分块做法:模板:P4168 [Violet] 蒲公英
有时众数附加这个条件:超过区间大小一半。这时候可以用摩尔投票法,用线段树和平衡树维护
摩尔投票法的核心思想为对拼消耗,考虑一个序列,我们每次取出两个数,如果相同就放回,不同的话就把这两个数全都删除,直到序列为空或剩一种数。如果序列空了就说明它没有众数,否则剩下的这种数就可能是这个序列的众数。注意被其他的数绝不可能成为答案,剩下的这个是不是答案还需拿平衡树要检验
例题
这题也应用了摩尔投票这个思想
[NOI2022] 众数

posted @ 2025-11-17 21:42  lcy6  阅读(0)  评论(0)    收藏  举报