足球联赛(查找)

本文介绍了一个简单的程序设计问题,即通过解析一个表示足球比赛结果的矩阵来预测联赛冠军。每行每列的字符代表主客场的比赛结果,通过计算每个队伍的积分来确定最终的冠军队伍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题描述】

  巴蜀中学新一季的足球联赛开幕了。足球联赛有 n只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得 3 分,输一场不得分,平局两只队伍各得一分。

  英勇无畏的小鸿是机房的主力前锋,她总能在关键时刻踢出一些匪夷所思的妙球。但是很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够 Burning 的 girl,她的能力不止如此,她还能预测这个赛季所有球队的比赛结果。

  虽然她能准确预测所有比赛的结果,但是其实她不怎么厉害,Mr.Gao 上数学课时她总是在 sleep,因此她的脑里只有整数没有实数,而且,她只会 10 以内非负整数的加法运算,因此她只有结果却无法知道谁会获得联赛的冠军。

  小鸿想给冠军队伍的所有队员一个拥抱,所以她把计算结果的任务交给了你:现在,给你一个 n*n 的矩阵表示比赛情况。第 i 行第 j 列的字母表示在第 i 只队伍 在主场迎战第 j 只队伍的比赛情况,W 表示主队赢,L 表示主队输,D 表示平局。现在需要你给出最后能得到小鸿拥抱的队伍编号,如有多支队伍分数最高,按字典序输出编号。

【输入格式】

  第一行一个整数 n。
  接下来 n 行,每行 n 个字符,表示输赢情况。第 i 行第 i 列为 - ,因为一只队伍不可能与自己比赛。

【输出格式】

  输出得分最高的队伍编号。如有多个在一行中输出,用一个空格分开。

【输入样例】

【样例1】
 3
 -WW
 W-W
 WW-

【样例2】
 5
 -DWWD
 L-WLL
 DD-WD
 DDL-L
 DDLL-

【输出样例】

【样例1】
 1 2 3

【样例2】
 1

【数据范围】

对于 40%的数据,满足 N<=20
对于 100%的数据,满足 N<=50

这是一道很简单的题。这道题要计算字符对应的相关队伍对应的分数,累加分数,然后找到分数最大的编号。

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
using namespace std;
const int maxn=60;
int n,a[maxn];
char ch[maxn][maxn];

int main()
{
    //freopen("1.txt","r",stdin);
    //freopen("football.out","w",stdout);
    scanf("%d",&n);
    memset(a,0,sizeof(a));
    for(int i=1;i<=n;i++)
    {
        scanf("%s",ch[i]);
        for(int k=0;k<n;k++)
        {
            if(ch[i][k]=='W')
            {
                a[i]+=3;
            }
            else if(ch[i][k]=='D')
            {
                a[i]+=1;
                a[k+1]+=1;
            }
            else if(ch[i][k]=='L')
            {
                a[k+1]+=3;
            }
        }
    }

    int t=0;
    for(int i=1;i<=n;i++)
    t=max(a[i],t);

    for(int i=1;i<=n;i++)
    if(a[i]==t) printf("%d ",i);

    if(n==0) printf("0");

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值