`
bcyy
  • 浏览: 1937311 次
文章分类
社区版块
存档分类
最新评论

Timus 1510. Order 找到出现次数过半的数

 
阅读更多

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.ru最全代码】集合是一个包含大量算法和解决方案的资源库,专为参与ACM(国际大学生程序设计竞赛)的参赛者提供。这个压缩包可能包含了成千上万的源代码文件,涵盖了从基础算法到复杂数据结构的各种问题...

    leetcode中国-InterView_Problem:LeetCode/NowCoder/Timus...问题代码。(主要是Java实现)

    Timus ... Problems code. (Mainly Java implementation) Chinese 刷题代码,主要是java实现,可能会有其他语言代码 代码来自LeetCode / NowCoder / timus 等 site url LeetCode NowCoder Timus LeetCode-cn

    acm.timus.ru-solutions:这些是我对ACM.TIMUS.RU问题的解决方案

    本压缩包"acm.timus.ru-solutions"包含了作者对于TIMUS平台上问题的解答,主要使用Java语言实现。通过分析这些解决方案,我们可以学习到多种算法思想和编程技巧。 1. **基础数据结构与算法**:Java作为面向对象的...

    https://acm.timus.ru/print.aspx?space=1&num=1002 题目答案

    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

    timus.ru_solutions 使用的语言:Python 使用的Python版本:3.9 我可以用Python语言解决的一些问题在“ python”目录中。 有些解决方案可以在Java中运行,但确切的解决方案/算法在Python中不起作用! 不知道为什么我...

    timus-1709.rar_数据结构_Visual_C++_

    描述中的"acm.timus.ru 1709 problem"进一步确认了这是一个来自TIMUS在线判题平台的编程挑战,编号为1709。TIMUS是一个广泛使用的编程竞赛平台,它提供了一系列的编程题目,帮助参赛者提升算法设计和编程技能。 ...

    Python库 | timus-sender-0.1.1.post1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:timus-sender-0.1.1.post1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    timus.ru_solutions_python

    timus.ru_solutions_python 使用的python:3.9 我可以用Python语言解决的一些问题在python目录中。 有些解决方案可以在Java中运行,但确切的解决方案/算法在Python中不起作用! 我不知道为什么

    Timus_Beginner

    在Timus的"Beginner"部分,你可以找到一系列旨在帮助初学者建立基本编程概念和解决简单问题的习题。这些题目通常涵盖基础数据类型、控制结构(如if语句、for循环和while循环)、数组操作、基础数学计算以及简单的...

    timus:Timus在线法官问题

    "Timus在线法官问题"是面向程序员和计算机科学爱好者的在线平台,用于测试和提高编程技能,特别是解决算法和数据结构问题。这个平台主要支持C++语言,因此我们重点讨论与C++相关的知识点。 1. **C++基础** C++是一...

    Timus图表「Timus Charts」-crx插件

    将图表添加到Timus Online Judge配置文件 该扩展程序将已解决问题的数量图表添加到Timus Online Judge的个人资料和比较器中。 功能:*概要文件和比较中已解决问题计数的图表*向图表中添加更多用户,删除它们,自定义...

    timus:用Python完成的timus上的题目

    【标题】:“timus:用Python完成的timus上的题目” 蒂莫斯(Timus Online Judge)是一个著名的在线编程竞赛平台,它提供了大量的编程题目供参赛者解决,旨在提高编程技能和算法理解。在这个名为“timus”的压缩包中...

    timus-charts:将图表添加到Timus Online Judge个人资料中

    Timus图表 将图表添加到Timus Online Judge个人资料中 特征 概要文件中和比较期间已解决问题的计数图表 向图表添加更多用户,删除它们,自定义图例颜色 缓存配置文件数据 隐藏图表 (可选)突出显示最近两个月内接受...

    timus OJ 1197

    ### Timus OJ 1197:孤独的骑士 #### 题目背景与解析 在本题目中,我们探讨了一个有趣的国际象棋问题——如何计算在一个特殊定义的棋盘上,一个“孤独的骑士”能攻击到的格子数量。此题目属于算法竞赛中的基础题型...

    ACM字符串题目及源代码[参照].pdf

    - PKU3693和SPOJ687题目都是关于找出重复次数最多的连续重复子串,这可能需要遍历整个字符串,维护当前子串及其出现次数的状态。 7. **长度不小于k的公共子串的个数**: - PKU3415要求计算所有长度不小于k的公共...

    timus-online-judge:Timus Online Judge 是俄罗斯最大的带有自动评判系统的编程问题档案。 问题多来自于在乌拉尔联邦大学、乌拉尔锦标赛、乌拉尔ACM ICPC分区域比赛和彼得罗扎沃茨克训练营举办的比赛中收集的问题

    timus-online-judge Timus Online Judge 是俄罗斯最大的带有自动评判系统的编程问题档案。 问题主要是从在乌拉尔联邦大学、乌拉尔锦标赛、乌拉尔 ACM ICPC 次区域比赛和彼得罗扎沃茨克训练营举办的比赛中收集的。 ...

    Timus Charts-crx插件

    语言:English将图表添加到Timus Online Judge个人资料中该扩展程序将已解决问题的数量图表添加到Timus Online Judge的个人资料和比较器中。功能:*概要文件和比较中已解决问题计数的图表*向图表中添加更多用户,删除...

    这些题目涵盖了递归、排序、数据结构等多个方面,是算法学习和刷题的重要资源

    6. **字符串中出现次数最多的字符**:给定一个字符串,找出其中出现次数最多的字符。 7. **快速排序**:实现快速排序算法。 8. **两数之和**:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 9. **...

    编程网站集合--各个地方的精英

    - 许多网站提供在线编程测试环境,如ACM.UVA.edu(Valladolid大学)和ACM.Timus.RU(乌拉尔州立大学)。这些平台允许用户提交代码并立即获得执行结果和评测反馈,有助于提高编程效率和调试技巧。 3. **学习资源**...

    ACM必备书籍及相关网站地址

    8. **Ural University Online Judge**:[http://acm.timus.ru/](http://acm.timus.ru/) - 提供了大量的ACM竞赛题目,适合进行实战训练。 9. **University of Valladolid Online Judge**:...

Global site tag (gtag.js) - Google Analytics