一道关于深度搜索入门的网易笔试题

来源:互联网 发布:淘宝首页钻展多少钱 编辑:程序博客网 时间:2024/05/21 09:28

题目描述

N国的足球赛正进行得如火如荼。32支来自全国各个地区的队伍被分成了8个不同的小组:A组,B组,C组…H组。每个小组有4支球队,每组的前两名进入了十六强淘汰赛,现在需要进行十六强淘汰赛的抽签。

十六强淘汰赛是单场淘汰机制,即当场的胜者进入下一轮。同时8场对阵需要同时满足以下规则:

1、同一地区的球队不对阵

2、各小组第一不对阵

3、各小组第二不对阵

4、同一小组的第一和第二不对阵

需要注意的是,A1 vs B2和B2 vs A1被认为是一样的对阵,并且8场对阵的顺序打乱只算一种抽签结果,即

(A1 vs B2, A2 vs B1, C1 vs D2, C2 vs D1,E1 vs F2, E2vs F1, G1 vs H2, G2 vs H1)

以及

(C1 vs D2, C2 vs D1,B2 vs A1, B1vs A2,E1 vs F2, E2 vs F1, G1 vs H2, G2 vs H1)只算为一种抽签结果,因为两个结果中,每场比赛的对阵双方都是一致的。

现在我们想知道在满足规则的前提下,总共有多少种可能的抽签结果。

注意:本题只允许C++、Java语言提交,其他语言提交得分无效

 

输入描述:

每个输入数据包含多个测试点。每个测试点后有一个空行。

第一行为测试点的个数T(T<=10)。

每个测试点包含16行,分别给出16支出线队伍的信息。每行包含2个字符串X,Y,分别表示该队伍是来自第几小组的第几名,以及该队伍所来自的地区。地区Y用2个大写字符表示。X由一个大写字符和一个数字组成,且一定是[“A1”,“A2”,“B1”,“B2”…“H1”,“H2”]中的一个。如“C2 GZ”表示C组第2名是来自地区GZ的队伍。

注意16支队伍的信息不一定按照A1,A2…H1,H2的顺序给出。

 

输出描述:

对于每个测试点,输出一行,表示一共可能的抽签结果。

输入例子:

2

A1 GZ

A2 HZ

B2 HZ

B1 GZ

C1 GZ

C2 HZ

D1 GZ

D2 HZ

H2 HZ

H1 GZ

E1 GZ

E2 HZ

F1 GZ

F2 HZ

G1 GZ

G2 HZ

 

A1 GZ

A2 GZ

B2 GZ

B1 GZ

C1 GZ

C2 GZ

D1 GZ

D2 GZ

H2 GZ

H1 GZ

E1 GZ

E2 GZ

F1 GZ

F2 GZ

G1 GZ

G2 GZ

输出例子:

14833

0

 我使用深度搜索加递归做的,应该还可以用排列组合做,用STL中的next_permutation(还没有试)

代码如下:




0 0
原创粉丝点击