LA 4094 WonderTeam 构造

题意:

一共有\(n\)支队伍参加比赛,每两支队伍比赛两场,主客场各一场。
胜场得\(3\)分,平局得1分,败场不得分。
一支得分为\(p\)的队伍的排名\(=\)分数大于\(p\)的队伍数\(+1\),所以会有名词并列的情况。

现在要选出一支梦之队,同时满足下面三个条件:

  • 胜利场数最多,不能并列
  • 进球总数最多,不能并列
  • 丢球总数最少,不能并列

求梦之队可能的最低排名。

分析:

进球数最多和丢球数最少我们是可以合理调整得到的,比如梦之队的胜场是以\(10^9 : 1\)获胜的。
下面考虑,让它胜场最多的情况下得分尽可能地少。
我们可以让梦之队胜两场,然后其余球队每队都赢梦之队一场,其余的比赛都只能平局了。
每支球队都会进行\(2(n-1)\)场比赛,假设梦之队打败的是\(A\)队和\(B\)队:

胜利场数平局次数最终得分
梦之队2\(n-3\)\(n+3\)
A队1\(2n-4\)\(2n-1\)
B队1\(2n-4\)\(2n-1\)
其他球队1\(2n-3\)\(2n\)

这样,\(n > 4\)的时候,梦之队的排名可以是最后一名。
\(1 \leq n \leq 3\)时,梦之队只可能是第一名,当\(n=4\)的时候,梦之队最少是第二名。

#include <cstdio>

int main()
{
    int n;
    while(scanf("%d", &n) == 1 && n) {
        if(n <= 3) printf("1\n");
        else if(n == 4) printf("2\n");
        else printf("%d\n", n);
    }

    return 0;
}

转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/5069687.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值