求助,蛙声一片!
  • 板块P2681 众数
  • 楼主DynamicProb
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/5/14 18:04
  • 上次更新2023/11/4 23:17:14
查看原帖
求助,蛙声一片!
372119
DynamicProb楼主2021/5/14 18:04
#include <bits/stdc++.h>
using namespace std;
int n, m, f, x, y, a[1005], maxn;
map<int, int> ff;

int main(){ 
	scanf("%d%d", &n, &m);
	for (int i=1;i<=n;i++) scanf("%d", &a[i]);
	for (int i=1;i<=m;i++){
		scanf("%d%d%d", &f, &x, &y);
		if (f == 1) a[x] = y;
		else{
			ff.clear();
			maxn = 0;
			for (int i=x;i<=y;i++){
				ff[a[i]]++;
				maxn = max(ff[a[i]], maxn);
			}
			for (int i=x;i<=y;i++){
				if (ff[a[i]] == maxn){
					printf("%d\n", a[i]);
					break;
				}
			}
		}
	}
	return 0;
}

我的思路是求出每个数出现的次数记录在ff中,并求出最大值,然后扫一遍ff,遇到跟最大值一样的就输出。

但是

样例过,却得零分。

请各位大佬指点!!!

2021/5/14 18:04
加载中...