标签:
给定n场比赛。
下面n个数字:表示该场是1获胜还是2获胜。
1、胜利者获得一分。
2、若已经决出整个赛季的胜负则比赛不会继续。
3、设要赢得这个赛季需要赢有s局,每局先获得t分的选手胜利。
问:
找出所有的(s,t)组合使得给定的n场比赛记录合法。
输出要排序。
枚举t。
a数组存第一个人赢的哪些场次。
b数组存第二个人赢的哪些场次。
设赢t分为一句。则判断 第一个人再赢t分是第几场,第二个人再赢t分是第几场。
显然先赢得t分的人赢了这场。
这样同时跑2个人的场数。
复杂度:
设要赢的分数为i, 则这个数组最多枚举 n/i次
i = [1, n]
所以复杂度 = n/1 + n/2 + ··· + n/n = nln(n+1);
其中有个二分。总复杂度是 O( n * ln(n+1) * log n);
Codeforces 496D Tennis Game 枚举+二分
标签:
原文地址:http://www.cnblogs.com/yuyanbian/p/4177377.html