Topcoder 10689TheSoccerDivOne

Posted denverjin

tags:

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

题意:给(n)个队伍的积分,它们要踢足球,每个队伍剩下4场没有踢。

问踢完后(0)队伍最高排名。

思路:首先想了贪心,可惜不对。

那么老实dp。

首先:每个队伍具体和哪个人踢了没有关系

那么我们只关心一个队伍胜了几场,输了几场、平了几场。

dp状态就很自然了:现在到了第(i)个队伍,现在有多少个没有配对的胜场、负场、平场,最少有多少个队伍比队伍(0)高。

那么我们考虑转移。

首先肯定是要枚举这个队伍的胜负平场数。

然后就要枚举平局的和之前的场次的配对个数。(正因为我没有枚举这个,而是所有的全都配对了,导致错了几个点。

那么最后的答案就是n,0,0,0。

还有一种方法。

我们换一种(dp)状态。

考虑(dp(i,j,k,l))表示现在到了第(i)个队伍,有(j)个胜场,(k)个负场,最大平场数量为(l)

那么还是枚举胜负平的场数abc,然后转移到(dp(i+1,j+a,k+b,max(l,c)))

最后需要判断(l)不能超过(4 imes n-2 imes j-2 imes k)

因为不能一个单独的平场没有配对的。

然后就好辣。

以上是关于Topcoder 10689TheSoccerDivOne的主要内容,如果未能解决你的问题,请参考以下文章

UVA 10689 Yet another Number Sequence

UVA 10689 Yet another Number Sequence 矩阵快速幂 水呀水

TOPCODER SAM 686 div1 300

TOPCODER SRM 686 div2 1000

topcoder练习记

寻找最大匹配 Topcoder