题目:

  Here is World Cup again, the top 32 teams come together to fight for the World Champion. The teams are assigned into 8 groups, with 4 teams in each group. Every two teams in the same group will play a game (so there are totally 6 games in each group), and the winner of this game gets 3 points, loser gets 0 point. If it is a tie game, both teams get 1 point. After all games finished, we get the scoreboard, but we forget the result of each game, can you help us to figure the result of each game? We only care about the win/lose/tie result of each game, but we don’t care the goals in each game.

Input:

  The input starts with one line containing exactly one integer T, which is the number of test cases. Each test case contains four space-separated integers A, B, C, D, in a line, which indicate the points each team gets after all 6 games.

Output:

  For each test case, output one line containing Case #x: y, where x is the test case number (starting from 1) and y is “Yes” if you can point out the result of each game, or “No” if there are multiple game results satisfy the scoreboard, or “Wrong Scoreboard” if there is no game result matches the scoreboard.

Note:

  In sample case #1, the only scenaro will be: the first team wins all the three games it plays, the second team loses to the first team and wins the other two, the third team only wins the game with the fourth, and the fourth team lose all the games.

  In sample case #2, the fourth team loses all the games, and the first three teams get into a winning-cycle, but there may be two different winning-cycles: first team wins second team, second team wins third team, third team wins first team OR first team wins third team, third team wins second team, second team wins first team. We can’t figure which winning-cycle is the actual game result.

  In sample case #3, the first team get 10 points, but no team could get more than 9 points by play three games, so it is a wrong scoreboard.

题意:世界杯比赛的一个小组中有4支队伍,队伍两两之间要进行一场比赛,赢得队伍得3分,输的队伍得0分,平局双方得1分。给出四支队伍的比赛完后的得分情况,问能不能确定具体的输赢情况。

思路:每组比赛一共有如下六种情况,那就dfs枚举六种情况下每个队伍输赢的所有的分情况,如果和给出的得分情况有多组相同,就是“No”,一组相同就是“Yes”,没有相同情况就是“Wrong Scoreboard”。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <vector>
using namespace std;
typedef long long ll;
const int maxn = 1e5+;
int a,b,c,d,ans;
int buf[]; void dfs(int x)
{
if(x == )
{
if(a == buf[] && b==buf[] && c==buf[]&& d==buf[])
ans++;
return;
}
if(x==)
{
buf[]+=;//1队伍赢
dfs(x+);
buf[]-=;
buf[]+=,buf[]+=;//两队平局
dfs(x+);
buf[]-=,buf[]-=;
buf[]+=;//2队伍赢
dfs(x+);
buf[]-=;
}
else if(x==)
{
buf[]+=;//1队伍赢
dfs(x+);
buf[]-=;
buf[]+=,buf[]+=;//两队平局
dfs(x+);
buf[]-=,buf[]-=;
buf[]+=;//3队伍赢
dfs(x+);
buf[]-=;
}
else if(x==)
{
buf[]+=;//1队伍赢
dfs(x+);
buf[]-=;
buf[]+=,buf[]+=;//两队平局
dfs(x+);
buf[]-=,buf[]-=;
buf[]+=;//4队伍赢
dfs(x+);
buf[]-=;
}
else if(x==)
{
buf[]+=;//2队伍赢
dfs(x+);
buf[]-=;
buf[]+=,buf[]+=;//两队平局
dfs(x+);
buf[]-=,buf[]-=;
buf[]+=;//3队伍赢
dfs(x+);
buf[]-=;
}
else if(x==)
{
buf[]+=;//2队伍赢
dfs(x+);
buf[]-=;
buf[]+=,buf[]+=;//两队平局
dfs(x+);
buf[]-=,buf[]-=;
buf[]+=;//4队伍赢
dfs(x+);
buf[]-=;
}
else if(x==)
{
buf[]+=;//3队伍赢
dfs(x+);
buf[]-=;
buf[]+=,buf[]+=;//两队平局
dfs(x+);
buf[]-=,buf[]-=;
buf[]+=;//4队伍赢
dfs(x+);
buf[]-=;
}
} int main()
{
int T,cnt = ;
scanf("%d",&T);
while(T--)
{
ans = ;
memset(buf,,sizeof(buf));
scanf("%d%d%d%d",&a,&b,&c,&d);
dfs();
if(ans==)
printf("Case #%d: Wrong Scoreboard\n",cnt++);
else if(ans == )
printf("Case #%d: Yes\n",cnt++);
else
printf("Case #%d: No\n",cnt++);
}
return ;
}

World Cup(The 2016 ACM-ICPC Asia China-Final Contest dfs搜索)的更多相关文章

  1. 2016 ACM/ICPC Asia Regional Dalian Online 1006 /HDU 5873

    Football Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  2. HDU 5873 Football Games 【模拟】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Football Games Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  3. 2016 ACM/ICPC Asia Regional Shenyang Online 1003/HDU 5894 数学/组合数/逆元

    hannnnah_j’s Biological Test Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K ...

  4. 2016 ACM/ICPC Asia Regional Qingdao Online 1001/HDU5878 打表二分

    I Count Two Three Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. 2016 ACM/ICPC Asia Regional Shenyang Online 1009/HDU 5900 区间dp

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  6. 2016 ACM/ICPC Asia Regional Shenyang Online 1007/HDU 5898 数位dp

    odd-even number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  7. 2016 ACM/ICPC Asia Regional Dalian Online 1002/HDU 5869

    Different GCD Subarray Query Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  8. HDU 5874 Friends and Enemies 【构造】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Friends and Enemies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  9. HDU 5889 Barricade 【BFS+最小割 网络流】(2016 ACM/ICPC Asia Regional Qingdao Online)

    Barricade Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  10. HDU 5875 Function 【倍增】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Function Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

随机推荐

  1. CANopen——笔记

    1. c语言的typedef高级用法 typedef void (*post_sync_t)(CO_Data*); http://zhidao.baidu.com/link?url=_lDBGq_uk ...

  2. luence优化速度

    一. .索引优化背景 很多网站都有自己的搜索引擎,比如百度,搜狗等等,而他们每天添加的索引量可想而知多么庞大,所以为了能提升用户的搜索响应速度,好的优化方案必不可少:当然对于一些网站的站内搜索也很有必 ...

  3. MySQL 基础 —— 数据类型、各种变量

    1. 基本数据类型 char:prod_id char(10),括号内的内容表示字符的长度 decimal:十进制,不带参数为整数(四舍五入) text:文本类型,长度不限 2. 日期和时间处理函数 ...

  4. c# 生成 xml 文件

    方法一: using System; using System.Xml; using System.IO; using System.Text; public class ReadWriteXml { ...

  5. vue学习笔记(1)

    1.检测变化 <ul> <li v-for="item in list">{{item}}</li> </ul> <scrip ...

  6. ionic安卓打包apk--安卓签名

    上周项目上线,在网上看了看打包的博客,感觉不是很清晰我自己来总结下 首先,我们在项目的根目录下 build android apk 的时候执行的命令一定要是 ionic build android - ...

  7. [SDOI2010]外星千足虫(高斯消元)

    高斯消元裸题... 方法一:暴力,O(2^n)20分 方法二:直接Gauss,加点玄学技巧搞得好的话70分 方法三:使用bitset优化,复杂度:$O(\frac{n^3}{ω})$ 不会的同学看一下 ...

  8. [IOI1998]Polygon

    很早就看到这题了...但因为有个IOI标志,拖到现在才做 由于是以前在书上看到的,就没有想过其他算法,直接区间DP了... 方程式也挺好想的 跟我们平时做数学题求几个数乘积最大差不多 最大的*最大的 ...

  9. $CF241D\ Numbers$

    problem 题目大意: 给你n个数和p,都小于50000要求留下若干个数字,使得剩下的数字异或为0,并且从左到右串联起来可以被p整除,求一种这样的方案. 搜索 #include <bits/ ...

  10. 自己编写的str操作函数

    1.strcat() 此函数原型为 char *strcat(char *dest, const char *src). 功能为连接两个字符串,把src连接到dest后面:返回dest地址 实现如下 ...