HDU1029 Ignatius and the Princess IV
2016-10-12 12:02
357 查看
Ignatius and the Princess IV
[b]Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32767 K (Java/Others)Total Submission(s): 27552 Accepted Submission(s): 11728
[/b]
[align=left]Problem Description[/align]
"OK, you are not too bad, em... But you can never pass the next test." feng5166 says.
"I will tell you an odd number N, and then N integers. There will be a special integer among them, you have to tell me which integer is the special one after I tell you all the integers." feng5166 says.
"But what is the characteristic of the special integer?" Ignatius asks.
"The integer will appear at least (N+1)/2 times. If you can't find the right integer, I will kill the Princess, and you will be my dinner, too. Hahahaha....." feng5166 says.
Can you find the special integer for Ignatius?
[align=left]Input[/align]
The input contains several test cases. Each test case contains two lines. The first line consists of an odd integer N(1<=N<=999999) which indicate the number of the integers feng5166 will tell our hero. The second line contains the
N integers. The input is terminated by the end of file.
[align=left]Output[/align]
For each test case, you have to output only one line which contains the special number you have found.
[align=left]Sample Input[/align]
5
1 3 2 3 3
11
1 1 1 1 1 5 5 5 5 5 5
7
1 1 1 1 1 1 1
[align=left]Sample Output[/align]
3
5
1
这道题目求的是出现次数超过总次数一半的元素我们可以总结
发现一个规律,就是在一个多数元素为n的数列中,去掉两个不相同
的元素,剩下数列的多数元素还是n进一步推广,去掉的元素中的多
数元素如果不是n,那么剩下数列的多数元素任然是n,这个可以通
过一个出现频率的概念来理解。假设n的出现频率为0.5,而前半段
的出现频率小于0.5那么后半段的出现频率必然大于0.5。
想清楚这点以后这道题目就可以解决了,值得注意的是没有必要
通过数组来存储每一个数据,直接在每次输入数据的时候进行操
作,可以节省内存空间的使用。
代码:
#include <iostream> #include <cstdio> using namespace std; int main() { int n,t,res; while(~scanf("%d",&n)) { int cnt=0; for(int i=0;i<n;i++) { scanf("%d",&t); if(cnt==0) { cnt=1; res=t; } else { if(t==res) cnt++; else { cnt--; } } } printf("%d\n",res); } return 0; }
相关文章推荐
- HDU1029:Ignatius and the Princess IV
- HDU1029:Ignatius and the Princess IV(找出数组中出现次数超过一半的数字)
- HDU1029-Ignatius and the Princess IV
- Ignatius and the Princess IV||HDU1029
- Ignatius and the Princess IV---hdu1029(动态规划或者sort)
- HDU1029----Ignatius and the Princess IV(map实现)
- hdu1029 Ignatius and the Princess IV
- hdu1029 Ignatius and the Princess IV(DP求数列中出现次数过半的数)
- HDU1029:Ignatius and the Princess IV -DP求一列数中出现次数最多的数的次数
- 【HDU1029】B - Ignatius and the Princess IV (动态规划)
- 【hdu1029 】Ignatius and the Princess IV
- hdu1029 B - Ignatius and the Princess IV
- hdu1029 Ignatius and the Princess IV 水题
- HDU-OJ-1029 Ignatius and the Princess IV-出现至少(N+1)/2次的数
- Ignatius and the Princess IV
- hdu 1029 ( Ignatius and the Princess IV ) 水题
- 【Ignatius and the Princess IV - 专题训练-排序】
- HDU 1029 Ignatius and the Princess IV
- hdu 1029 Ignatius and the Princess IV(排序)
- 【hdu 1029】Ignatius and the Princess IV