zoukankan      html  css  js  c++  java
  • 洛谷P1031 [NOIP2002]均分纸牌

    Question


    分析:题意中说扑克牌总数是n的整数倍实际上就是在暗示,我们可以先把均分后每堆纸牌的数量算出来。

    "...."告诉我们只能相邻两个之间操作,但一定要少的问前一个要,多的给下一个吗,不需要,因为你问

    上一个要事实上也上上一个绕了一圈给你送过来的,所以我们就一堆一堆操作,多了少了都由下一堆承担,

    有人说,很好吗,这不就移动n-1次吗,额,万一恰巧到哪个哪个正好是average,就不用了操作了。

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    
    using namespace std;
    
    int average,a[105],n,sum,res;
    
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            sum+=a[i];
        }
        average=sum/n;
        for(int i=1;i<=n;i++)
        {
            if(a[i]==average) continue;
            else if(a[i]<average)
            {
                a[i+1]=a[i+1]-(average-a[i]);
                a[i]=average;
                res++;
            }
            else
            {
                a[i+1]=a[i+1]+a[i]-average;
                a[i]=average;
                res++;
            }
        }
        printf("%d",res);
        return 0;
    }
    View Code
  • 相关阅读:
    推荐Windows下SVN服务器端和客户端工具软件
    QT的一些小知识
    Qt
    Qt
    ADB
    HTTP
    Python
    项目附
    项目
    架构
  • 原文地址:https://www.cnblogs.com/Hoyoak/p/11348802.html
Copyright © 2011-2022 走看看