1 solutions

  • 2
    @ 2024-7-12 20:56:11
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int a[105]={};
    int aver,sum=0;
    int ans=0;
    /*  aver记录要达到的牌数
    	sum记录纸牌总数
    	ans记录移牌次数		 */ 
    int main(){
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    		sum+=a[i]; 
    	}
    	//边输入边累加 
    	aver=sum/n;
    	//算平均值 
    	for(int i=0;i<n;i++){
    		if(a[i]>aver) a[i+1]-=aver-a[i],ans++;
    		if(a[i]<aver) a[i+1]-=aver-a[i],ans++;
    		//施行移牌操作
    		//同时记录次数 
    	}
    	cout<<ans<<"\n";
    	//输出即可 
    	return 0;
    }
    

    这是贪心题吗?

    • 1

    Information

    ID
    31
    Time
    1000ms
    Memory
    125MiB
    Difficulty
    2
    Tags
    # Submissions
    53
    Accepted
    18
    Uploaded By