【贪心】均分纸牌

原题传送门

思路


讲真的,这道题和积木大赛有点像,我一开始甚至搞混了,不过代码确实也没差多少,总体思路大体一致。
纯纯的贪心,只要一个数的前一个数不为平均数,就把这个数在原来的基础上加上前一个数与平均数的差,并让答案自增,最后输出答案即可~~~

Code


#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
using namespace std;

int n,i,x,a[101],ans;

int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>a[i];
    //a[0]=a[n];
    for(i=1;i<=n;i++)
        x+=a[i];
    x/=n;
    for(i=0;i<=n;i++)
        a[i]-=x;
    for(i=2;i<=n;i++)
    {
        if(a[i-1]!=0)
            a[i]+=a[i-1],ans++;
    }
    
    cout<<ans;
    
    
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/gongdakai/p/11290760.html