蓝桥杯 3.能量圆盘【算法赛】 题型:贪心 半独立完成 难度:简单

52 阅读1分钟

3.能量圆盘【算法赛】 - 蓝桥云课 (lanqiao.cn)

我想着统计一下每个数的出现次数,把所有的数都变为出现次数最多的那个数.下面代码没有通过:

//第三题
#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=1010;
int a[N]; 
int maxn=-INF;
map<int,int>haxi;
int main()
{
	int n;cin>>n;
	

	for(int i=0;i<n;i++)
	{
	   cin>>a[i];
     haxi[a[i]]++;
	}
	
for(auto &it:haxi)
{
  maxn=max(maxn,it.second);
}
	
	
	cout<<maxn<<endl;
return 0;	
} 

image.png

想了一下是自己傻了,题目问的是最少需要多少次才可以把所以数变的一样.所以最后我不应该输出maxn,而应该输出n-maxn.这样就可以通过了: image.png