HDU 1029 Ignatius and the Princess IV --- 水题
Posted tan90丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1029 Ignatius and the Princess IV --- 水题相关的知识,希望对你有一定的参考价值。
题目大意:给定数字n(n <= 999999 且n为奇数 )以及n个数,找出至少出现(n+1)/2次的数
解题思路:n个数遍历过去,可以用一个map(也可以用数组)记录每个数出现的次数,
若次数一旦达到(n+1)/2,即输出a[i]
注意能出现(n+1)/2次数的最多只有一个
/* HDU 1029 *Ignatius and the Princess IV --- dp */ #include <cstdio> #include <cstring> #include <algorithm> #include <map> using namespace std; const int maxn = 1000005; int a[maxn]; map<int, int> m; int main() { #ifdef _LOCAL freopen("D:\\input.txt", "r", stdin); #endif int n; int ans; while (scanf("%d", &n) == 1){ m.clear(); //记得清空原有的东西 for (int i = 1; i <= n; ++i){ scanf("%d", a + i); ++m[a[i]]; if (m[a[i]] == (n + 1) / 2){ ans = a[i]; } }//for(i) printf("%d\n", ans); } return 0; }
以上是关于HDU 1029 Ignatius and the Princess IV --- 水题的主要内容,如果未能解决你的问题,请参考以下文章
[2016-03-27][HDU][1029][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