题目链接https://www.luogu.com.cn/problem/P1031

一道标准贪心题

知道是贪心但是不知道那么容易,第一次编写代码没想到能直接过(原本只是想混测试点...)

有时候做贪心的题总感觉会错,获取贪心的题确实不需要考虑之后的操作,就做出当前最好的打算就ok

上代码


#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
int num[105];
ll sum=0;
int ave;
int main()
{
	cin>>n;
	int i,cnt=0;
	for(i=1;i<=n;i++)
	{
		cin>>num[i];
		sum+=num[i];
	}
	ave=sum/n;
	for(i=1;i<=n;i++)
	{
		if(num[i]>ave)
		{
			num[i+1]+=num[i]-ave;
			num[i]=ave;
			cnt++;
		}
		if(num[i]<ave)
		{
			num[i+1]-=ave-num[i];
			num[i]=ave;
			cnt++;
		}
	}
	cout<<cnt;
}