「洛谷P2397」 yyy loves Maths VI (mode) 解题报告
P2397 yyy loves Maths VI (mode)
题目背景
自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你
题目描述
udp2:第一题因为语言性质问题,比赛结束后将所有c/c++的程序的内存调为2.2mb后重测。
他让redbag找众数
他还特意表示,这个众数出现次数超过了一半
一共n个数,而且保证有
n<=2000000
而且每个数<2^31-1
输入输出格式
输入格式:
第一行一个整数n
第二行n个整数
输出格式:
一行,这个众数
输入输出样例
输入样例#1:
5
2 3 3 3 3
输出样例#1:
3
说明
时间限制 1s
空间限制 3.5M(你没看错3.5M)
有人想水过,但我告诉你这空间是不够的
//kkksc03偷偷地说:你随便输出一个数字吧,都有1/2的几率。不过这可是乐多赛,值得不值得你看着办。所以最好想一想正解。
思路
题目意思很简单,就是求众数。然鹅,,,,,空间贼小,,,,
这里的突破口就是这个众数出现次数超过了一半
,所以我们可以运用一种神奇的方法。
我们不断将两个不同的数字删去,最后剩下的数肯定相同的,它就是众数。
为什么呢?假设最坏的情况——都是众数与其它数一起删去,但是这个众数出现次数超过了一半
,所以众数不可能全部被消去,剩下的数就是众数。如果非众数与非众数相消去,众数剩下的会更多,会更优。
这好像叫摩尔投票法。
代码
#include<bits/stdc++.h>
using namespace std;int n, a, b, t;int main(){scanf( "%d", &n );scanf( "%d", &a ); b = 1;for ( int i = 2; i <= n; ++i ){scanf( "%d", &t );if ( t == a ) b++;else if ( b ) b--;else a = t, b = 1;}printf( "%d\n", a );return 0;
}
拓展
摩尔投票算法可以拓展到 出现次数超过1/3,甚至1/k的情况。
只要把一次消掉2个数改成消掉k个数就可以了。
转载于:https://www.cnblogs.com/louhancheng/p/10265712.html
「洛谷P2397」 yyy loves Maths VI (mode) 解题报告相关推荐
- [洛谷2397]yyy loves Maths VI
题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 他让redbag找众数 他还特 ...
- 洛谷P2397 yyy loves Maths VI (mode) 摩尔投票
求众数的一种方法 不需要内存,排序 每次记录上次加的值以及个数,相等个数+1,不相等就-1 因为众数大于一半 最坏的情况也就是拿一个众数取走一个非众数 最后的结果肯定就是众数 //#pragma co ...
- 洛谷乐多赛 yyy loves Maths VI (mode)
题目描述 他让redbag找众数 他还特意表示,这个众数出现次数超过了一半 一共n个数,而且保证有 n<=2000000 而且每个数<2^31-1 时间限制 1s 空间限制 3.5M(你没 ...
- 「洛谷P1343」地震逃生 解题报告
P1343 地震逃生 题目描述 汶川地震发生时,四川XX中学正在上课,一看地震发生,老师们立刻带领x名学生逃跑,整个学校可以抽象地看成一个有向图,图中有n个点,m条边.1号点为教室,n号点为安全地带, ...
- 「洛谷2495」「BZOJ3052」「SDOI2001」消耗战【虚树+树形动态规划】
题目大意 给你\(k\)个点,让这一些点和一号节点断开,删去某一些边,求最小的删去边权之和. 做题的心路历程 做了\(HG\)昨天的模拟赛,深深感觉到了窝的菜,所以为了\(A\)掉T1这一道毒瘤,窝就 ...
- 「洛谷P3469」[POI2008]BLO-Blockade 解题报告
P3469[POI2008]LO-Blockade 题意翻译 在Byteotia有n个城镇. 一些城镇之间由无向边连接. 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些).每两个 ...
- 「洛谷 3768」简单的数学题
传送门 problem 给定 nnn 和 ppp,求: ∑i=1n∑j=1nijgcd(i,j)\sum_{i=1}^n\sum_{j=1}^nij\gcd(i,j)i=1∑nj=1∑nijgc ...
- 「洛谷 P5043」:树同构【树哈希】
P5043 [模板]树同构([BJOI2015]树的同构 题目描述 树是一种很常见的数据结构. 我们把NNN个点,N−1N−1N−1条边的连通无向图称为树. 若将某个点作为根,从根开始遍历,则其它的点 ...
- 洛谷 P1344 [USACO4.4]追查坏牛奶Pollutant Control 解题报告
P1344 [USACO4.4]追查坏牛奶Pollutant Control 题目描述 你第一天接手三鹿牛奶公司就发生了一件倒霉的事情:公司不小心发送了一批有三聚氰胺的牛奶.很不幸,你发现这件事的时候 ...
最新文章
- 单片AT89C2051 + SD卡 + 3310LCD = 音乐播放器
- Beta阶段项目总结
- 找到两个字符串的公共字符,并按照其中一个的排序
- 批量提取 caffe 特征 (python, C++, Matlab)(待续)
- server端推送消息机制
- 微信接口开发-初级体验
- linux的驱动开发——字符设备驱动
- 怀旧服最新服务器塞卡尔,魔兽世界怀旧服:10个至今未开门的服务器!圣光服进度刚到20%!...
- oracle 免费 工具下载,免费的Oracle客户端工具(Oracle SQL Handler )
- 中国内裤衬里行业市场供需与战略研究报告
- office visio 替代_10 个 Linux 中最好的 Visio 替代品
- 实对称矩阵的特征值一定为实数证明
- python数据分析收获与心得体会_初次数据分析--我的心得体会
- java resourcebundle_Java中使用ResourceBundle访问资源文件(properties文件) | 学步园
- sqlserver tvps java_中毒了,请高手看一下诊断报告。
- 苹果呼叫转移设置不了_0广告,支持苹果,甜美小姐姐or磁性小哥哥做助理!
- crx插件转换火狐插件_我的Firefox插件
- 做360度评估引发员工不满?
- Phython画星空(较复杂)
- VScode 淡绿色界面