1536.均分纸牌

题目链接

思路:

本质上是相邻两个单元格之间的传递,当不足的话我们可以实行借的方案,仔细思考下一,就是这个道理。

AC代码如下:

#include<iostream>
#include<cstdio>

using namespace std;

int a[110];
int n;
int sum;
int main() {
	cin >> n;
	for (int i = 1; i <= n; i ++) {
		cin >> a[i];
		sum += a[i];
	}
	int v = sum / n; //均值 

	for (int i = 1; i <= n; i ++) {
		a[i] -= v; //使其减去均值 
	}

	int res = 0;
	for (int i = 1; i <= n; i ++) {
		if (!a[i]) continue;
		else a[i+1] += a[i], res++; //原则上是本单元不够就向下一个单元借,不错就是这样的。 
	}
	
	cout << res;  //输出答案即可 
	
	return 0;
}

 

posted @ 2022-10-05 14:55  Luli&  阅读(13)  评论(0编辑  收藏  举报