zoukankan      html  css  js  c++  java
  • hdu

    题意:N个队(N <= 100000),每一个队有个总分ai(ai <= 1000000),每场比赛比赛两方最多各可获得1分,问最少经过了多少场比赛。

    题目链接:http://acm.hdu.edu.cn/showproblem.php?

    pid=4974

    ——>>我们应该尽量使每场比赛的得分为1 : 1。这样能够达到最少的比赛场数(不小于单个队伍的分数)。

    如果有2场比赛的比分为1 : 0,

    1)a : b = 1 : 0,c : d = 1 : 0。这时能够安排a : c = 1 : 1。仅仅需1场就可达到同样的分数。

    2)a : b = 1 : 0。a : c = 1 : 0,取另外一场比赛d : e = 1 : 1,这时可安排a : d = 1 : 1,a : e = 1 : 1,仅仅需2场就可达到同样的分数。

    因此,没有最多有1场比赛的比分为 1 : 0。其它比赛的比分都为 1 : 1,因此。结果 = max(单个队伍最高分数, (全部分数和 + 1) / 2)。。。(注意范围:10 ^ 5 * 10 ^ 6 > 2 ^ 31 - 1)

    virtual contest上提交必须开输入挂才不会TLE。。大哭

    hdu题库4974中 scanf 就能够AC。。

    #include <cstdio>
    
    int ReadInt()
    {
        int ret = 0;
        char ch;
    
        while ((ch = getchar()) && ch >= '0' && ch <= '9')
        {
            ret = ret * 10 + ch - '0';
        }
    
        return ret;
    }
    
    int main()
    {
        int T, N, a, kase = 0;
    
        scanf("%d", &T);
        getchar();
    
        while (T--)
        {
            long long sum = 0;
            long long ret = 0;
    
            N = ReadInt();
            while (N--)
            {
                a = ReadInt();
                sum += a;
                if (a > ret)
                {
                    ret = a;
                }
            }
            if (sum & 1)
            {
                sum++;
            }
            sum >>= 1;
            if (sum > ret)
            {
                ret = sum;
            }
    
            printf("Case #%d: %I64d
    ", ++kase, ret);
        }
    
        return 0;
    }
    


  • 相关阅读:
    使用GDI+将24位真彩色图像转换为8位灰度图像
    Disable SIP automatic popup
    [转]"分析 EntityName 时出错"的解决方案
    PHP中文件读写操作
    VC6 combobox使用
    [转]WinCE下消息队列用法
    Java8 stream处理List,Map总结
    【工具】cephbluestoretool
    读的
    【osd | 运维】pg相关命令
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7250045.html
Copyright © 2011-2022 走看看