1 条题解

  • 0
    @ 2025-5-4 11:34:45

    题目分析

    问题描述

    我们需要实现一个编程竞赛排名系统,根据以下规则对参赛队伍进行排名:

    1. 首先按解题数量从多到少排序
    2. 解题数量相同的,按总时间(所有已解题目的时间之和)从少到多排序
    3. 总时间相同的,按几何平均时间从少到多排序
    4. 以上都相同的,按队伍名称的字典序排序

    输入格式

    • 多组测试数据,每组以队伍数量c开始(1 ≤ c ≤ 20)
    • 接着c行,每行包含队伍名称和7个解题时间
    • 输入以0结束

    输出格式

    • 对每组数据输出排名表
    • 每行包含:排名(两位数)、队伍名称(左对齐10字符)、解题数、总时间、几何平均时间、7个原始时间

    解题思路

    1. 数据结构设计

      • 使用结构体存储队伍信息:名称、解题时间列表、解题数、总时间、几何平均时间
    2. 关键计算

      • 解题数:统计非零时间的数量
      • 总时间:所有非零时间的和
      • 几何平均时间:使用公式exp( (ln t1 + ln t2 + ... + ln tn)/n )计算,并四舍五入
    3. 排序规则

      • 实现自定义比较函数,按题目要求的优先级排序
    4. 排名处理

      • 遍历排序后的列表,动态计算排名(处理并列情况)
    5. 格式化输出

      • 使用iomanip控制输出格式
    • 1

    信息

    ID
    246
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者