1 条题解

  • 0
    @ 2025-8-24 21:14:46

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 未来姚班zyl
    欢迎加入粉丝团!https://www.luogu.com.cn/team/72518|AFO

    搬运于2025-08-24 21:14:45,当前版本为作者最后更新于2023-04-22 19:33:13,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    Source & Knowledge

    2023202344 月语言月赛,由洛谷网校入门计划/基础计划提供。

    题目大意

    这是题目内容

    就是有 1616 支队伍按照类似世界杯的赛制依次进行比赛,给出每场比赛的比分,求冠军是哪一队。

    题目分析

    本题考察分支结构。

    方法 1:直接通过若干条 if 语句进行判断。

    方法2:

    这道题的难点在于细节的处理,我们看一看有哪些细节需要我们注意:

    1. 每场对战的主客场队伍编号。
    2. 每场对战的胜者会进入哪一场比赛。
    3. 每场比赛的胜者会成为下一场的主场队伍还是客场队伍。

    这样的信息非常适合用数组来存储。

    于是我们定义数组 lil_{i}rir_{i} 分别代表第 ii 场比赛的主场队伍编号和客场队伍编号,nxtinxt_{i} 表示第 ii 场比赛的下一场比赛编号。

    对于每场的胜者到了下一场是主场还是客场呢,通过观察可以发现,奇数场比赛的胜者会成为下一场的主场队伍,比赛偶数场的胜者会成为下一场的客场队伍。这样写一个判断语句就行了,不必特地开一个数组存储。

    相信大家都能写主函数里的代码,这里贴出如何初始化数组:

    //由于数组下标从0开始,所以千万不要忘了先带一个0
    int nxt[20]={0,9,9,10,10,11,11,12,12,13,13,14,14,15,15};
    int l[20]={0,1,3,5,7,9,11,13,15};
    int r[20]={0,2,4,6,8,10,12,14,16};
    //l和r数组都用了正整数代替字母,这是为了看起来方便,输出时只需+'A'-1就行了
    

    视频讲解

    完整代码请在视频题解中查看

    • 1

    信息

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