您的位置:首页 > 理论基础 > 计算机网络

2014浙大ACM网络省赛-----Talented Chef问题(Problem -C)

2014-04-12 19:29 411 查看
本题代码神之一Y,代码如下:

#include<cstdio>

int main()

{

    int t,n,m;

    int num;

    scanf("%d",&t);

    for(int i=0;i<t;i++)

    {

        int max=0,sum=0;

        scanf("%d%d",&n,&m);

        for(int j=0;j<n;j++)

        {

            scanf("%d",&num);

            if(max<num) max=num;

            sum+=num;

        }

        int average=sum/m;

        if(average*m<sum) average++;

        if(average>max) printf("%d\n",average);

        else printf("%d\n",max);

    }

    return 0;

}

对于给出的每个盘子的步骤数目有如下规律:若是盘子步骤数目的极差很大的时候(比如是100,1,M的值为2,花费的时间就是100),此时该厨师花费的主要时间是在最长步骤的那盘菜上面。若是对于所有的盘子的步骤数目都处于很平均时,该厨师花费的时间就是将所有时间平摊在没个盘子上(比如2,2,2,M为2,花费的时间就是3)。而对于一般的情况(比如1,2,3,4,5,6,7,8,9,10,M为6,花费的时间{55/6}**=10),对于该算法的证明,希望得到大神的讲解~~(本人纯属灵机一动,然后就A了!)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐