一道水题。。。强迫症,既然做到了,还是想发个博。。。
**题意**Ahmed 的爸爸只允许他看相同频率的节目,一个频率可能接受到几个节目的信号。
思路:记下一个频率出现了多少次,然后输出出现次数最多的频率(若有多个频率出现次数最多且相同则输出其中最小的频率)
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<stack>
#include<queue>
#include<utility>
#include<vector>
#include<cmath>
#include<set>
#include<map>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
vector<int> F;
set<int> chl;
int hs[100000];
int main()
{
//freopen("in.txt", "r", stdin);
int T;
scanf("%d", &T);
while(T--){
F.clear();
chl.clear();
memset(hs, 0, sizeof(hs));
int N;
scanf("%d", &N);
while(N--){
char name[55];
int f;
scanf("%s%d", name, &f);
hs[f]++;
if(chl.count(f) == 0) {F.push_back(f); chl.insert(f);}
}
int ans = F[0], anscnt = hs[F[0]];
for(int i=0; i<F.size(); i++){
if(anscnt < hs[F[i]]){
anscnt = hs[F[i]];
ans = F[i];
}
else if(anscnt == hs[F[i]]){
ans = min(ans, F[i]);
}
}
printf("%d\n", ans);
}
return 0;
}