p1031均分纸牌,模拟+贪心

思路:
先求出平均数
从左开始往右,如果目前牌总数不0,那么就只能盼望下一堆来牌(正负均是)来抵消,所以步数+1
#include <bits/stdc++.h>
using namespace std;

int n;
const int N=105;
int a[N];
int sum,aver,qsum,cnt;

int main(int argc, char** argv) {
	cin>>n;
	for(int i=0;i<n;i++){
		scanf("%d",&a[i]);
		sum+=a[i];
	}
	aver=sum/n;
	qsum=0;//目前牌总数 
	for(int i=0;i<n;i++){
		qsum+=a[i]-aver;
		if(qsum) cnt++;//如果总数不为0.步数++ 
	}
	cout<<cnt;
	return 0;
}

全部评论

相关推荐

头像
01-29 18:11
海南大学 Java
奔跑的suechil...:单从项目看这个简历不怕被问穿吗 带微服务的项目需要相当多的项目理解和经验诶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务