#include<iostream> #include<map> using namespace std; int main() { int M,n; int sum; multimap<int ,int >a; multimap<int ,int >::iterator pos; multimap<int ,int >::iterator pos1; while(scanf("%d",&M)!=EOF) {while(M--) {sum=0; scanf("%d",&n); a.insert(make_pair(n,0)); } for(pos=a.begin();pos!=a.end();pos++) { if(sum<a.count(pos->first)){sum=a.count(pos->first);pos1=pos;} } cout<<pos1->first<<endl; a.clear(); } return 0; } 以上的代码再福州OJ上超时了。可能是count的用了太多的时间;#include<iostream> #include<map> using namespace std; int main() { map<int ,int >a; map<int ,int >::iterator pos; map<int ,int >::iterator pos1; while(scanf("%d",&M)!=EOF) {while(M--) {sum=0; scanf("%d",&n); if(a.find(n)==a.end()) a[n]=1; else a[n]++; } for(pos=a.begin();pos!=a.end();pos++) { if(sum<pos->second) { sum=pos->second;pos1=pos; } } cout<<pos1->first<<endl; a.clear(); } return 0; } 充分应用found的方法可能得到异想不到的效果。。