首页 > 其他分享 >T324159 卡空间的题目/电脑白吃 题解

T324159 卡空间的题目/电脑白吃 题解

时间:2023-03-24 12:33:47浏览次数:53  
标签:10 数组 题解 复杂度 白吃 now T324159

https://www.luogu.com.cn/problem/T324159
image

题目大意:

给定一个大小为 \(n\) 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 \(\lfloor \frac{n}{2} \rfloor\) 的元素。
并且给定的数组总是存在多数元素。

我们现在希望使用时间复杂度 $ O(n) $ ,空间复杂度 \(O(1)\) 的算法求解(此处的空间复杂度 \(O(1)\) 代表不允许使用数组)

输入格式

第一行两个数 \(n\)

表示有 \(n\) 个数

接下来 \(n\) 行每行1个数 $ a_i $

输出格式

第一行一个数 \(x\)

样例

输入

3
3 2 3

输出

3

说明

\(\cdot\) 对于 \(100\%\) 的数据,\(n \le 10^{5}\),\(a_i \le 10^{9}\)。(悲,洛谷的数据传不上 \(100\) 个 $ 10^{7}$ ,所以就降下来了,不过时间可以再卡到 $ 50 \text{ms} $

题解

Boyer-Moore 投票算法。

#include<bits/stdc++.h>
#define for1(i,a,b) for(register int i = a;i <= b;i ++)
using namespace std;
int num,now,n,x;
int main() 
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr); 
	cin >> n;
	for1(i,1,n) 
	{
		cin >> x;
		now = (num == 0?x:now);
		num += (x == now?1:-1);
	}
	cout << now << '\n';
	return 0;
}

标签:10,数组,题解,复杂度,白吃,now,T324159
From: https://www.cnblogs.com/yyx525jia/p/17251176.html

相关文章

  • CF1168C And Reachability 题解 线性dp
    题目链接https://codeforces.com/problemset/problem/1168/C题目大意给定一个数组\(a\),从下标\(x\)能够转移到下标\(y\)要满足\(x\lty\)且\(a_{p_i}\,\&\,a......
  • P3489 [POI2009]WIE-Hexer 题解
    一、题目描述:大陆上有 n 个村庄,m 条双向道路,p 种怪物,k 个铁匠,铁匠都在一个村庄里,他可会给你打造他所能打造的所有剑,特定的剑可以对付特定的怪物,每条道路上都可......
  • P4221 [WC2018]州区划分 题解
    题目链接题目描述给出\(n\)个城市,\(m\)条边,一个划分合法当且仅当所有划分中的点集和集合中点之间存在的边集所构成的图不构成欧拉回路且联通。定义一个点集的值为......
  • 【ACM算法竞赛日常训练】DAY1题解与分析
    DAY1共四题:月月查华华的手机:https://ac.nowcoder.com/acm/problem/23053RinneLovesEdges:https://ac.nowcoder.com/acm/problem/22598逆序对:https://ac.nowcoder.com......
  • CF1630E 题解
    题意传送门一个长度为$n$的环状序列${a_i}$,其中的数值满足$1\leqa_i\leqn$,序列中可能有相等的数。序列${a_i}$的一个排列和另外一个排列本质相同,当且......
  • LDAP - 题解【模拟】
    题面该题为CCF-CSP认证考试真题,试题编号为202303-3。我参加了这次CSP认证(虽然说认证成绩没有达到预期emmm),原题链接见:202303-3。下面搬运题面如下:题目背景西西艾弗岛运营......
  • Nacos 2.2.1 版本下载启动报错问题解决
    先上错误问题这个报错我在网上找了~~~每个人都在说五花八门的,接近真相但却不是!!!!!接下来由我补充nacos-server-2.2.1\nacos\bin\startup.cmd文件修......
  • 单链表OJ题解析1
    1.移除链表元素题目链接题目描述 解题思路这道题较好的解法是创建一个新链表,把不等于val的节点链接到一起,然后返回新链表的头结点structListNode*removeEle......
  • 关于airtest无法连接模拟器问题解决思路
    背景:死活打开airtestIDE死活识别不了夜神模拟器。官网下载最新airtest之后,自己电脑Androidsdk是最新的版本,也用adbversion检查了本地版本、夜神模拟器版本。确实发现夜......
  • 微信小程序之wx.getLocation再次授权问题解决
    首先,在page外定义一个公共函数用于发送获取位置的请求vargetLocation=function(that){wx.getLocation({type:'wgs84',success:function(res){......