wordpress网站修改域名,芜湖室内设计公司排名,wordpress 别名访问,html5浏览器【题目描述】 有n堆纸牌#xff0c;编号分别为 1#xff0c;2#xff0c;…,n 。每堆上有若干张#xff0c;但纸牌总数必为n 的倍数。可以在任一堆上取若干张纸牌#xff0c;然后移动。
移牌规则为#xff1a;在编号为1 的堆上取的纸牌#xff0c;只能移到编号为 2 的堆…【题目描述】 有n堆纸牌编号分别为 12…,n 。每堆上有若干张但纸牌总数必为n 的倍数。可以在任一堆上取若干张纸牌然后移动。
移牌规则为在编号为1 的堆上取的纸牌只能移到编号为 2 的堆上在编号为 n 的堆上取的纸牌只能移到编号为n−1 的堆上其他堆上取的纸牌可以移到相邻左边或右边的堆上。
现在要求找出一种移动方法用最少的移动次数使每堆上纸牌数都一样多。
例如 n4 4 堆纸牌数分别为 ① 9 ② 8 ③ 17 ④ 6
移动3次可达到目的
从 ③ 取4张牌放到④9 8 13 10-从③取3张牌放到 ②9 11 10 10- 从②取1张牌放到①10 10 10 10。
【输入】 nn堆纸牌1≤n≤100
a[1],a[2]…a[n] n堆纸牌每堆纸牌初始数l≤a[i]≤10000。
【输出】 所有堆均达到相等时的最少移动次数。
【输入样例】 4 9 8 17 6 【输出样例】 3
【思路】我们看完题目第一眼想不就是让他们变为平均数嘛借其他大于平均数的然后移到小于平均数的如1,99,17平均数9,则1向17借817-8就成了9,99,9。更直观的说把平均数假设为0 则序列改为-8,00,8就是全变为0,。而如何完成呢可以手动模拟更改后直接贪心。
#includebits/stdc.h
using namespace std;
int main(){
int n,ans0,ping,s0;
cinn;
int ab[n];
for(int i1;in;i){cinab[i];ansab[i];
}
pingans/n;
for(int i1;in;i) ab[i]-ping;
for(int i1;in;i){if(ab[i]0) continue;if(ab[i]!0){ab[i1]ab[i];s;}
}
couts;return 0;
}