首页 > 其他分享 >摩尔投票

摩尔投票

时间:2022-10-17 23:33:51浏览次数:42  
标签:int 摩尔 投票 抵消 众数 count1 more

\(n\) 个人投票,保证存在绝对众数,问你最后谁的票最多?

1.暴力

开个数组扫一遍或者排序,\(n/2\) 的位置必定为答案.

2.摩尔投票

看作每个票可以互相抵消.假设当前存在一个答案 \(k\) ,如果让 \(k=a_i\) 那么 \(k\) 抵消的次数加一,否则 \(k\) 的抵消次数减少一.如果 \(k\) 的抵消次数为 \(0\) ,让 \(a_{i+1}\) 成为新的 \(k\) .如果不存在绝对众数,只保证存在众数,那么需要再花时间扫描一般来判断.
算法时间复杂度 \(O(n)\) ,空间复杂度 \(O(1)\) .

Code

#include<bits/stdc++.h>
using namespace std; 
int n,m,count1,more;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>m;
		if(count1==0) more=m,count1++;
		else if(more==m) count1++;
		else count1--;
	}
	cout<<more;
	return 0;
} 

3.更快的方法

如果空间够用,那么用一个桶,如果 \(a_i\) 出现的次数 \(\geq n/2\) 那么这个数立刻当选.

标签:int,摩尔,投票,抵消,众数,count1,more
From: https://www.cnblogs.com/zhong114514/p/16801131.html

相关文章

  • 摩尔投票相关应用
    最基本的摩尔投票摩尔投票法(Boyer–Mooremajorityvotealgorithm)是一个比较冷门的算法,最初算法解决的问题是如何在任意多的候选人(选票无序),选出获得票数最多的那个。在......
  • C语言-----结构体之投票系统
    本篇文章是在学习c语言结构体过程中得一个简单的投票系统程序。很简单应用了strcmp函数进行了比较。很简单但花了一上午才调通,看来我这编程还有点加强啊。不过也对自己......
  • 摩尔投票(绝对众数)
    绝对众数:数组内出现次数大于\(\lceil\cfrac{n}{2}\rceil\)的数。求绝对众数的方法:暴力做法\(O(n\logn)\)排序并枚举左端点。摩尔投票:\(O(n)\)求出。摩尔投票......
  • 【图解源码】Zookeeper3.7源码剖析,Session的管理机制,Leader选举投票规则,集群数据同步
    Zookeeper3.7源码剖析能力目标掌握Zookeeper中Session的管理机制能基于Client进行Debug测试Session创建/刷新操作能搭建Zookeeper集群源码配置掌握集群环境下Leader选举启动......
  • PVN3D: 基于Deep Point-wise 3D关键点投票的6D姿态估计网络(香港科技大学提出)
    论文链接:​​https://arxiv.org/pdf/1911.04231v1.pdf​​代码链接:​​https://github.com/ethnhe/PVN3D.git​​.背景介绍由于光照变化、传感器噪声、场景遮挡和目标截断等......
  • 摩尔纹问题
    ue4中解决摩尔纹的建议是指贴图缩小后出来的随机条纹吗,那个大概是你的贴图每个像素差异太大密度又太高导致的,不建议把贴图上的噪波缩小到个位数像素的级别,适当模糊一下贴......
  • 摩尔投票法学习笔记
    摩尔投票法绝对众数:数列内出现次数超过数列长度一半的数。摩尔投票法是一个求绝对众数的利器。例题1.洛谷P2397yyylovesMathsVI(mode)摩尔投票法板子题。假......
  • 主元素问题与摩尔投票法、格雷码
    一堆小玩意,放到一起。题意:给定一个n个元素数列,保证有一个数\(a\)的出现次数超过\(\lfloor\fracn2\rfloor\),求这个数。数据范围\(n<=3000000,a_i\le2147483647,\)时限0.......