Problem L. World Cup

Posted accepting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Problem L. World Cup相关的知识,希望对你有一定的参考价值。

题目大意:有A,B,C,D四个队伍,两两之间有一个比赛,假如A和B比赛,如果平局,各加一分,如果说A胜,给A加3分,不给B加分,B胜同理

给出A,B,C,D,的得分,判断形成这种局面有多少种方式。

思路 DFS,,枚举每3种情况,赢输平局。

#include<bits/stdc++.h>
using namespace std;
int d[10][3]={{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}};
int t[10][10][10][10] ;
int arr[100+10];
void dfs(int x){
    if(x==6) {
        t[arr[1]][arr[2]][arr[3]][arr[4]]++;
        return ;
    }
    for(int i=1;i<=3;i++){
        if(i==1){
            arr[d[x][0]]++;
            arr[d[x][1]]++; 
                dfs(x+1); 
             arr[d[x][0]]--;
            arr[d[x][1]]--;
        }
    
        else if(i==2){
            arr[d[x][0]]+=3;
            dfs(x+1);
            arr[d[x][0]]-=3;
        }
        else {
            arr[d[x][1]]+=3;
            dfs(x+1);
            arr[d[x][1]]-=3;
        }
    }
}

void solve(int xx){
    int a,b,c,d;
    cin>>a>>b>>c>>d; 
    printf("Case #%d: ",xx);
    if(a>=10||b>=10||c>=10||d>=10)    puts("Wrong Scoreboard");
    else if(t[a][b][c][d]==1) puts("Yes");
    else if(t[a][b][c][d]==0) puts("Wrong Scoreboard");
    else  puts("No");
}
int main(){
    dfs(0);
    int t;
    cin>>t;
    for(int i=1;i<=t;i++) solve(i);
    return 0;
}

 

以上是关于Problem L. World Cup的主要内容,如果未能解决你的问题,请参考以下文章

M - World Cup Gym - 101775M

1011 World Cup Betting (20 分)难度: 简单 / 知识点: 模拟

1011. World Cup Betting

LA 7578. ACM World Finals 2016 L. Swap Space

PAT1011:World Cup Betting

(C++)1011 World Cup Betting