zoukankan      html  css  js  c++  java
  • F

    Time Limit : 1 Second      Memory Limit : 65536 KB

    Source : 第十届山东省ACM省赛

    Problem Link : ZOJ 4118

    Author : Houge  Date : 2019-5-20

    题目大意:

      有n堆石头,每一次都可以进行一下操作之一:

      ·从一个非空石堆里拿走一块石头。

      ·把一块石头从一个石堆(非空)移动到另一个里。

    问最少进行多少次操作可使每个石堆石头的数量相同。

    分析:

      简单的思维题。先求一个平均数(向下取整),这个数就是最后每个石堆的石头数,然后求一下数量比平均数多的堆一共比平均数多了几个石头,就是所求的答案。

    代码:

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int t;
     8     scanf("%d",&t);
     9     while(t--)
    10     {
    11         long long n,num[100005],avg=0,i,cnt=0;  // cnt 会爆 int
    12         scanf("%lld",&n);
    13         for(i=0;i<n;i++)
    14         {
    15             scanf("%lld",&num[i]);
    16             avg+=num[i];
    17         }
    18         avg/=n;
    19         for(i=0;i<n;i++)
    20             if(avg<num[i]) cnt+=num[i]-avg;
    21         printf("%lld
    ",cnt);
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    基础查询语句
    操作函数(续)
    操作函数
    DDL语言的学习
    基本数据类型
    数据库的介绍
    Servlet组件合并
    Tomcat02
    Tomcat演变史
    08.17《jsp》——html+css+js+jsp+servlet+oracle简单项目练习
  • 原文地址:https://www.cnblogs.com/CSGOBESTGAMEEVER/p/10896669.html
Copyright © 2011-2022 走看看