zoukankan      html  css  js  c++  java
  • codevs 1098 均分纸牌 2002年NOIP全国联赛提高组 x

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 黄金 Gold
     
    题目描述 Description

    有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。
      移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。
      现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。

      例如 N=4,4 堆纸牌数分别为:
      ① 9 ② 8 ③ 17 ④ 6
      移动3次可达到目的:
      从 ③ 取 4 张牌放到 ④ (9 8 13 10) -> 从 ③ 取 3 张牌放到 ②(9 11 10 10)-> 从 ② 取 1 张牌放到①(10 10 10 10)。

    输入描述 Input Description

    第一行N(N 堆纸牌,1 <= N <= 100)
    第二行A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000)

    输出描述 Output Description

    输出至屏幕。格式为:
    所有堆均达到相等时的最少移动次数。‘

    样例输入 Sample Input

    4
    9 8 17 6

    样例输出 Sample Output

    3

    数据范围及提示 Data Size & Hint

    e

    分类标签 Tags 

     1 #include<iostream>
     2 #include<cstdio>
     3 
     4 using namespace std;
     5 
     6 int n,sum,pj,js,changes;
     7 int zp[101];
     8 
     9 int main()
    10 {
    11     cin>>n;
    12     for(int i=1;i<=n;i++)
    13     {
    14         cin>>zp[i];
    15         sum+=zp[i];
    16     }
    17     pj=sum/n;//记录下平均数 
    18     for(int i=1;i<n;i++)//循环到<n为止 
    19     {
    20         int j=i+1;
    21         if(zp[i]<pj)//如果比平均数小,从右边借 
    22         {
    23             js++;//进行计数 
    24             changes=pj-zp[i];//从右边借多少 
    25             zp[i]=pj;//与上面的位置不能够进行交换!!!
    26             zp[j]-=changes;//下一个减去已经被此时借掉的 
    27         }
    28         else if(zp[i]>pj)//如果比平均数小,借给右边 
    29         {
    30             js++;//进行计数 
    31             changes=zp[i]-pj;//借多少给右边 
    32             zp[i]=pj;//与上面的位置不能够进行交换!!! 
    33             zp[j]+=changes;//下一个加上借了的 
    34         }
    35     }
    36     cout<<js;
    37     return 0; 
    38 }

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    解决Ubuntu 18.04中文输入法的问题,安装搜狗拼音
    POJ 1151 Atlantis 矩形面积求交/线段树扫描线
    [CTF]思维导向图
    Ubuntu Linux 学习篇 配置DHCP服务器
    Ubuntu Linux 学习篇 配置DNS服务器
    Ubuntu Linux DNS服务器 BIND9配置文件命令介绍
    Ubuntu Linux 学习篇 配置DHCP服务器
    Ubuntu Linux 学习篇 配置DNS服务器
    Ubuntu Linux DNS服务器 BIND9配置文件命令介绍
    随记
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6754280.html
Copyright © 2011-2022 走看看