P1031-均分纸牌

均分纸牌

原题:传送门

解题思路:因为每一堆都只能移动到相邻的堆里,那就把每一堆不满足平均数的堆都往后一堆移动,只考虑后一堆(前一堆已经弄好,不需要再弄)

比如:2  2  8

        4  0  8

        4  4  4

代码:

 

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 
 5 int a[10001];
 6 int n;
 7 
 8 int main() {
 9     cin >> n;
10     int i;
11     int result = 0;
12     int len = 0;
13     for (i = 0; i < n; i++) {
14         cin >> a[i];
15         len += a[i];
16     }
17     len = len / n;
18     for (i = 0; i < n; i++) {
19         if (a[i] != len) {
20             a[i + 1] += a[i] - len;
21             result++;
22         }
23     }
24     cout << result << endl;
25     return 0;
26 }

 

 

 

 

 

posted @ 2019-03-16 10:30  Diligent_Memory  阅读(171)  评论(0编辑  收藏  举报