Skip to content

把这些转为markdown源码给我:

绝对众数相关

定义:序列a[1~n]中出现次数大于floor(n/2)的数
性质:
	绝对众数是众数
	任何一个可重集的绝对众数唯一
	两个可重集合并成新可重集,新的绝对众数如果存在,那必然是原来两个可重集的绝对众数之一
	端点一定的区间的绝对众数最多O(log)个
常见问题:

判定某个数是否是绝对众数:
	将是该数的设为1,否则设为-1,判断和是否是正的
	
	此做法可以扩展至判定某个数的出现次数形如>n/k的形式
	例如:x>=floor((x+y)/3),解得 2x-y>-3,那么可以分别赋2,-1的权值,将其和与-3比较
	
	此做法的优势是不用考虑区间长度
区间绝对众数:
	摩尔投票法:
		区间信息是:绝对众数及其对消后的次数
		该信息有可加性,可以结合线段树实现
		注意,其结果需要进行判定(不保证一定有绝对众数)
		
		该做法可以扩展至求出现次数大于n/k的数:
			具体的,维护k-1个可能的绝对众数a[1~k-1],我们先考虑加入一个数x的情况
			若x在a序列中出现过,则将其次数++
			否则,看有没有空的位置,有就给x
			否则,就给所有的数的次数--
			同样也要判定合法性
	概率做法:
		每次在区间中随机一个数判定
		非常容易扩展到n/k的情况
	中位数做法:
		绝对众数一定是中位数
		可以用主席树实现
		
		扩展有限,只能扩展到n/2+dt的情况
例题:
P3765
[ARC159F] Good Division:是P4062的强化版
	首先有平方的1D/1D的DP,瓶颈在转移
	直接套分支结构DS不行,那只能上分治了
	利用log结论和信息合并的结论,可以得到分治区间内有用的绝对众数是log的
定义:序列a[1~n]中出现次数大于floor(n/2)的数
性质:
	绝对众数是众数
	任何一个可重集的绝对众数唯一
	两个可重集合并成新可重集,新的绝对众数如果存在,那必然是原来两个可重集的绝对众数之一
	端点一定的区间的绝对众数最多O(log)个
常见问题:

判定某个数是否是绝对众数:
	将是该数的设为1,否则设为-1,判断和是否是正的
	
	此做法可以扩展至判定某个数的出现次数形如>n/k的形式
	例如:x>=floor((x+y)/3),解得 2x-y>-3,那么可以分别赋2,-1的权值,将其和与-3比较
	
	此做法的优势是不用考虑区间长度
区间绝对众数:
	摩尔投票法:
		区间信息是:绝对众数及其对消后的次数
		该信息有可加性,可以结合线段树实现
		注意,其结果需要进行判定(不保证一定有绝对众数)
		
		该做法可以扩展至求出现次数大于n/k的数:
			具体的,维护k-1个可能的绝对众数a[1~k-1],我们先考虑加入一个数x的情况
			若x在a序列中出现过,则将其次数++
			否则,看有没有空的位置,有就给x
			否则,就给所有的数的次数--
			同样也要判定合法性
	概率做法:
		每次在区间中随机一个数判定
		非常容易扩展到n/k的情况
	中位数做法:
		绝对众数一定是中位数
		可以用主席树实现
		
		扩展有限,只能扩展到n/2+dt的情况
例题:
P3765
[ARC159F] Good Division:是P4062的强化版
	首先有平方的1D/1D的DP,瓶颈在转移
	直接套分支结构DS不行,那只能上分治了
	利用log结论和信息合并的结论,可以得到分治区间内有用的绝对众数是log的

Released under the MIT License.