A New Russian Kolyan likes two things: money and order. Kolyan has lots of money, but there is no order in it. One beautiful morning Kolyan understood that he couldn't stand this any longer and decided
to establish order in his money. He told his faithful mates to fetch the money from an underground depository, and soon his big room was filled up with red, green, and blue banknotes. Kolyan looked with disgust at this terrible mess. Now he wants to leave
in his depository only banknotes of the same value and to give the rest of the money to the poor. He knows exactly that more than half banknotes have the same value. But in this mess it is impossible to understand which banknote is the most common.
Input
The first line contains the number of Kolyan's banknotesN(1 ≤N≤ 500000). In the nextNlines, the valuesKof these banknotes are given (0 ≤K≤ 109).
More than half of them are the same.
Output
Output the most common value.
Sample
input
output
5
3
3
2
2
3
|
3
|
又是一个新的算法,原来可以这样查找的。
我的一句话理解的思想:
计算可以抵消的数量,那么如果一个数出现的次数超过半那么最终这个数肯定不会被抵消完。
这个思想叫Moore’s Voting Algorithm
有了这个思想武器之后,程序就可以写的很简单,可以很清楚看到怎么实现的,
参考资料可以看:
http://www.geeksforgeeks.org/majority-element/
#include <iostream>
using namespace std;
void main()
{
int n = 0, a = 0, majority = 0, c = 1;
cin>>n>>majority;
while (--n)
{
cin>>a;
if (majority == a) c++;
else c--;
if (0 == c)
{
majority = a;
c = 1;
}
}
cout<<majority;
}
分享到:
相关推荐
【acm.timus.ru最全代码】集合是一个包含大量算法和解决方案的资源库,专为参与ACM(国际大学生程序设计竞赛)的参赛者提供。这个压缩包可能包含了成千上万的源代码文件,涵盖了从基础算法到复杂数据结构的各种问题...
Timus ... Problems code. (Mainly Java implementation) Chinese 刷题代码,主要是java实现,可能会有其他语言代码 代码来自LeetCode / NowCoder / timus 等 site url LeetCode NowCoder Timus LeetCode-cn
本压缩包"acm.timus.ru-solutions"包含了作者对于TIMUS平台上问题的解答,主要使用Java语言实现。通过分析这些解决方案,我们可以学习到多种算法思想和编程技巧。 1. **基础数据结构与算法**:Java作为面向对象的...
In the present world you frequently meet a lot of call numbers and they are going to be longer and longer. You need to remember such a kind of numbers. One method to do it in an easy way is to assign ...
timus.ru_solutions 使用的语言:Python 使用的Python版本:3.9 我可以用Python语言解决的一些问题在“ python”目录中。 有些解决方案可以在Java中运行,但确切的解决方案/算法在Python中不起作用! 不知道为什么我...
描述中的"acm.timus.ru 1709 problem"进一步确认了这是一个来自TIMUS在线判题平台的编程挑战,编号为1709。TIMUS是一个广泛使用的编程竞赛平台,它提供了一系列的编程题目,帮助参赛者提升算法设计和编程技能。 ...
资源分类:Python库 所属语言:Python 资源全名:timus-sender-0.1.1.post1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
timus.ru_solutions_python 使用的python:3.9 我可以用Python语言解决的一些问题在python目录中。 有些解决方案可以在Java中运行,但确切的解决方案/算法在Python中不起作用! 我不知道为什么
在Timus的"Beginner"部分,你可以找到一系列旨在帮助初学者建立基本编程概念和解决简单问题的习题。这些题目通常涵盖基础数据类型、控制结构(如if语句、for循环和while循环)、数组操作、基础数学计算以及简单的...
"Timus在线法官问题"是面向程序员和计算机科学爱好者的在线平台,用于测试和提高编程技能,特别是解决算法和数据结构问题。这个平台主要支持C++语言,因此我们重点讨论与C++相关的知识点。 1. **C++基础** C++是一...
将图表添加到Timus Online Judge配置文件 该扩展程序将已解决问题的数量图表添加到Timus Online Judge的个人资料和比较器中。 功能:*概要文件和比较中已解决问题计数的图表*向图表中添加更多用户,删除它们,自定义...
【标题】:“timus:用Python完成的timus上的题目” 蒂莫斯(Timus Online Judge)是一个著名的在线编程竞赛平台,它提供了大量的编程题目供参赛者解决,旨在提高编程技能和算法理解。在这个名为“timus”的压缩包中...
Timus图表 将图表添加到Timus Online Judge个人资料中 特征 概要文件中和比较期间已解决问题的计数图表 向图表添加更多用户,删除它们,自定义图例颜色 缓存配置文件数据 隐藏图表 (可选)突出显示最近两个月内接受...
### Timus OJ 1197:孤独的骑士 #### 题目背景与解析 在本题目中,我们探讨了一个有趣的国际象棋问题——如何计算在一个特殊定义的棋盘上,一个“孤独的骑士”能攻击到的格子数量。此题目属于算法竞赛中的基础题型...
- PKU3693和SPOJ687题目都是关于找出重复次数最多的连续重复子串,这可能需要遍历整个字符串,维护当前子串及其出现次数的状态。 7. **长度不小于k的公共子串的个数**: - PKU3415要求计算所有长度不小于k的公共...
timus-online-judge Timus Online Judge 是俄罗斯最大的带有自动评判系统的编程问题档案。 问题主要是从在乌拉尔联邦大学、乌拉尔锦标赛、乌拉尔 ACM ICPC 次区域比赛和彼得罗扎沃茨克训练营举办的比赛中收集的。 ...
语言:English将图表添加到Timus Online Judge个人资料中该扩展程序将已解决问题的数量图表添加到Timus Online Judge的个人资料和比较器中。功能:*概要文件和比较中已解决问题计数的图表*向图表中添加更多用户,删除...
6. **字符串中出现次数最多的字符**:给定一个字符串,找出其中出现次数最多的字符。 7. **快速排序**:实现快速排序算法。 8. **两数之和**:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 9. **...
- 许多网站提供在线编程测试环境,如ACM.UVA.edu(Valladolid大学)和ACM.Timus.RU(乌拉尔州立大学)。这些平台允许用户提交代码并立即获得执行结果和评测反馈,有助于提高编程效率和调试技巧。 3. **学习资源**...
8. **Ural University Online Judge**:[http://acm.timus.ru/](http://acm.timus.ru/) - 提供了大量的ACM竞赛题目,适合进行实战训练。 9. **University of Valladolid Online Judge**:...