专栏文章

P1031 [NOIP 2002 提高组] 均分纸牌 题解

P1031题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minq290r
此快照首次捕获于
2025/12/02 06:29
3 个月前
此快照最后确认于
2025/12/02 06:29
3 个月前
查看原文

P1031 [NOIP 2002 提高组] 均分纸牌 题解

CPP
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
int a[110];
signed main(){
	int n,cnt = 0,sum = 0; cin >> n;
	for(int i = 1;i <= n;i++) cin >> a[i],sum += a[i];
	sum /= n;//均值 
	for(int i = 1;i <= n;i++) a[i] -= sum;
	for(int i = 1;i <= n;i++){
		if(a[i] == 0) continue;//不用管了
		a[i+1] += a[i];//下一项有可能>sum或<sum,但都只用+a[i]就行了 
		cnt++;//操作次数+1          因为a[i]有正有负 使a[i]变为0 
	}
	cout << cnt;
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...