题目链接:https://vjudge.net/contest/342715
第一题:A - Max Sum Plus Plus
第二题:B - Ignatius and the Princess IV
题意:给n个数字,n为奇数,求一个数字x,x的个数大于等于(n+1)/2
解法一:map容器
思路:n的范围为1000000,但是元素x值不明,所以我们用map的第一个元素去存x,第二个元素存x的次数
代码:
#include<bits/stdc++.h> #include<map> using namespace std; #define maxn 1000000 int n; map<int,int> mp; //思路:采用map,第一个数存数组的数,第二个数存数的个数 int main(){ while(scanf("%d",&n)!=EOF){ mp.clear(); int num=0,flag=0,b,c; for(int i=1;i<=n;i++){ scanf("%d",&b); if(mp.count(b)){ //map的第一个元素 mp[b]++;//mp[b]记录b的个数 if(num<mp[b]){ num=mp[b]; flag=b; } } else{ mp.insert(pair<int,int>(b,1)); } } cout<<flag<<endl; } }
原文地址:https://www.cnblogs.com/Aiahtwo/p/11896587.html
时间: 2024-10-09 19:52:37