赛程与排名

赛程与排名

单挑赛是本次邀请赛的重头戏之一,它的赛程安排和欧洲杯很相似,分为两个阶段:小组赛淘汰赛 。小组赛结束后,还剩下了 n=2k 位选手,这 n 位选手水平各不相同 ,可以用 1~n 中的整数表示,数字越小水平越高。他们将要通过 k 轮残酷的淘汰赛角逐出谁是真正的王者,具体的赛程安排方法为:

Ø        首先随机产生一个所有选手的序列 p1 [1]~p1 [n] 1~n 的排列)。

Ø        在第 1 轮中,由 p1 [2i-1] p1 [2i] 进行比赛,获胜的选手记为 p2 [i](1≤i≤2k-1 )

Ø        在第 2 轮中,由 p2 [2i-1] p2 [2i] 进行比赛,获胜的选手记为 p3 [i] (1≤i≤2k-2 )

Ø        在第 x 轮中,由 px [2i-1] px [2i] 进行比赛,获胜的选手记为 px+1 [i] (1≤i≤2k-i )

Ø        在第 k 轮中,由 pk [2i-1] pk [2i] 进行比赛,获胜的选手记为 pk+1 [i] (1≤i≤2k-k )

一旦序列 p1 确定,那么整个赛程都会确定,因此总共有 n! 种不同的赛程安排。

淘汰赛结束后,会根据各位选手晋级到的最后轮次进行排名

1、  如果两名选手晋级的最终轮次不同,则晋级到更高轮次的排名靠前;

2、  如果两名选手在同一轮中遭淘汰,则水平较高的那个队的排名靠前。

举例来说,如果赛程安排如右图所示, p1 =[1,6,2,8,3,4,5,7] ,则选手 1~8 分别晋级到第 4/2/3/1/2/1/1/1 轮,那么最终排名 为: 13254678

你的任务是:

1 、已知 k ,求一共可能有多少种最终排名

2 、求有多少种本质不同 的赛程安排使得最终排名为 A 。这儿所谓的本质不同 ,只要满足下面的条件:存在 i ,在两个赛程安排中分别被 j k 淘汰,而 j≠k

每个任务分数各占 50%

输入格式:

第一行为 k

第二行为 1 1~n 的排列 A

输出格式:

第一行为一个整数,表示当 n=2k 时,可能有多少种不同的最终排名;

第二行为一个整数,表示有多少种本质不同 的赛程安排使得最终排名为 A 。如果没赛程能够对应最终排名 A ,那么输出 0

数据范围: k<=12

输入示例:

       3

1 3 2 5 4 6 7 8

输出示例:

       28

       18

       这里是题解一枚。。

       首先可以确定一点,第一问是可以递推的,因为第一轮比赛选出 2^(n-1) 个人,然后就与前一项相同了,现在问题就是选出这 2^(n-1) 个人的方案数。

       把问题抽象一下,在一个 2m 个点的无向完全图中,选出 m 条边,使得每个点都被覆盖到,有多少种选法。以上这个问题的答案就是第 m 项卡特兰数(为什么?我也不知道。。)。然后第一问只要将 k-1 的答案与所求的卡特兰数相乘变可以得到 k 的答案。第一问就解决了。

       然后是第二问,第二问比较简单,第 i 轮比赛其实是前 2^(i-1) 个数与 2^(i-1)+1 2^i 个数的完备匹配方案,要求与第一类数匹配的第二类数要大于它本身,这个可以用递推的方法然后再累成的方法求出来,比较容易想到,就不详细说明了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值