Problem L. World Cup(2016China-Final)【暴力】

本文介绍了一种通过暴力枚举方法来判断给定的四队单循环赛后的分数情况是否合理及是否唯一的算法实现。该算法使用了4维数组记录所有可能的分数组合,并通过六层循环遍历所有比赛结果。

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

source:题目链接

题意:这是2016 ACM-ICPC China-Final的L题,说4个队踢单循环赛,赢得3分输得0分平得1分,六场比赛下来会出现许多种分数情况,现在给一个分数情况,问这种分数情况可不可能出现,可能出现的话是否是唯一的?

思路:6层循环暴力枚举比赛情况,4维数组存储四个队每个分数情况出现个数。

代码如下:

#include<bits/stdc++.h>
using namespace std;

int table[11][11][11][11]; //用于记录所有可能出现的比分情况中某种得分情况出现的次数

int main()
{
    int t,T,n,a,b,c,d,sa,sb,sc,sd;
    int score_p1[3]={3,0,1};
    int score_p2[3]={0,3,1};
    //清零
    memset(table,0,sizeof(table));
    //暴力枚举六场比赛情况
    for(int ab=0;ab<3;ab++)
    for(int ac=0;ac<3;ac++)
    for(int ad=0;ad<3;ad++)
    for(int bc=0;bc<3;bc++)
    for(int bd=0;bd<3;bd++)
    for(int cd=0;cd<3;cd++)
    {
        //计算每种情况下得分情况
        sa=score_p1[ab]+score_p1[ac]+score_p1[ad];
        sb=score_p2[ab]+score_p1[bc]+score_p1[bd];
        sc=score_p2[ac]+score_p2[bc]+score_p1[cd];
        sd=score_p2[ad]+score_p2[bd]+score_p2[cd];
        table[sa][sb][sc][sd]++;
    }

    scanf("%d",&T);
    for(t=1;t<=T;t++)
    {
        scanf("%d%d%d%d",&a,&b,&c,&d);
        switch(table[a][b][c][d])
        {
            case 0: printf("Case #%d: Wrong Scoreboard\n",t);break;
            case 1: printf("Case #%d: Yes\n",t);break;
            default:printf("Case #%d: No\n",t);break;
        }
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值