足球联赛(模拟)

足球联赛(模拟)

题目描述

小明热爱足球,也热爱家乡球队1队。新的一年足球联赛又开始了,共n个球队,进行双循环比赛。双循环比赛是指每个球队与其他n-1只队伍分别踢两场正式比赛,就是主场和客场比赛。如下图,在n=3的情况下,表示3只球队,共6场比赛。

第i行有n-1场比赛,表示球队i所踢的n-1场主场比赛。第i列就是队i的n-1场客场比赛。上表中第一行表示队1在主场4:3战胜了队2,在与队3的对比赛中1:2不敌对手;而客场比赛与队2战成0:0平,又以2:1战胜了队3。
根据足球联赛的得分规则,以双方进球多少评判比赛胜负,比赛战平(进球数一样多),双方各得1分;如果比赛分出胜负,那么获胜方(进球多的)得到3分,输的那方不得分。
队1在主场一胜一负,得到3分,在客场一胜一平,得到4分。队1的总积分为7分。
队2在主场一胜一平,得到4分,在客场一平一负,得到1分,队2的总积分为5分。
队3总得分为4分
因此,队1分数最高,可以获得冠军。联赛规定,若有多个得分最高的队伍,他们将分享冠军的荣誉,同时获得冠军。
现在小明想要知道,在看完并记录下所有比赛后,家乡球队队1能否获得冠军,并计算出队1赛季总积分。

输入

第一行一个整数n,表示参加联赛的球队数量,小明支持的就是队1。
接下来n行,每行n*2个整数,第i行第j对整数表示队i在主场对阵队j的比赛情况,两个整数分别表示主队(队i)和客队(队j)的进球数。当i=j的时候,两个整数用-1表示,自己和自己踢球的情况是不存在的。

输出

若队1夺冠,那么在第一行输出“Yes”;若1队的总积分不是最高的,那么在第一行输出“No”。
第二行输出一个整数,表示队1的赛季总积分。

样例输入 

【样例1】
3
-1 -1 4 3 1 2
0 0 -1 -1 3 0
1 2 1 1 -1 -1
【样例2】
2
-1 -1 2 2
3 0 -1 -1

样例输出 

【样例1】
Yes
7
【样例2】
No
1

提示

样例2解释
共2个球队,踢2场比赛,第一场队1在主场和队2打成平手,第二场队2在主场3:0战胜队1。队1一平一负积1分,队2一胜一平得4分。队1没有夺冠,积分为1分。

思路:模拟题跟着敲就行了,比赛的时候判题有问题,一直WA....好在最后重判了,附上AC代码

import java.util.ArrayList;
import java.util.Scanner;

public class Main
{
    public static void main(String[] argc)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int [][] race = new int[n][n * 2];

        for(int i = 0; i < n; ++i)
        {
            for(int j = 0; j < n * 2; ++j)
            {
                race[i][j] = in.nextInt();
            }
        }

        int [] score = new int[n];

        for(int i = 0; i < n; ++i)
        {
            for(int j = 0; j < n * 2; j += 2)
            {
                if(race[i][j] == -1) continue;
                if(race[i][j] > race[i][j + 1])
                {
                    score[i] += 3;
                }
                else if(race[i][j] == race[i][j + 1])
                {
                    score[i] += 1;
                    score[j / 2] += 1;
                }
                else
                {
                    score[j / 2] += 3;
                }
            }
        }

        int pos = 0;
        int max = 0;
        for(int i = 0; i < n; ++i)
        {
            if(score[i] > max)
            {
                max = score[i];
                pos = i + 1;
            }
        }

        if(pos == 1)
            System.out.println("Yes\n" + score[0]);
        else
            System.out.println("No\n" + score[0]);
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种非常适合进行网络爬虫的编程语言,可以用它来爬取足球联赛数据。以下是一种常见的方法来实现这个目标: 1. 确定目标网站:首先,你需要确定你想要爬取数据的足球联赛网站。一些常见的足球数据网站包括:ESPN、BBC Sport、SofaScore等。 2. 分析网页结构:使用开发者工具或者查看网页源代码,分析目标网站的网页结构。找到包含所需数据的HTML元素和标签。 3. 使用Python库进行爬取:Python有很多强大的库可以用来进行网络爬虫,比如Requests和BeautifulSoup。使用Requests库发送HTTP请求获取网页内容,然后使用BeautifulSoup库解析HTML并提取所需数据。 4. 数据处理和存储:一旦你成功地从网页中提取到了足球联赛数据,你可以对数据进行处理和清洗,然后将其存储到数据库或者文件中,以便后续分析和使用。 下面是一个简单的示例代码,演示了如何使用Python爬取足球联赛数据: ```python import requests from bs4 import BeautifulSoup # 发送HTTP请求获取网页内容 url = "https://www.example.com/football" response = requests.get(url) html_content = response.text # 使用BeautifulSoup解析HTML soup = BeautifulSoup(html_content, "html.parser") # 提取所需数据 data = [] matches = soup.find_all("div", class_="match") for match in matches: home_team = match.find("span", class_="home-team").text away_team = match.find("span", class_="away-team").text score = match.find("span", class_="score").text data.append({"home_team": home_team, "away_team": away_team, "score": score}) # 处理和存储数据 for match_data in data: print(match_data) # 在这里可以对数据进行进一步处理或者存储到数据库/文件中 ``` 请注意,以上代码只是一个简单的示例,实际的爬虫过程可能会更加复杂,需要根据目标网站的具体结构和数据格式进行相应的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值