POJ 3071 Football

题目大意:有2^n个足球队,编号依次为1,2,3……2^n,按照递增的顺序每两个相邻的队伍之间进行比赛,赢的队伍进入下一轮,然后再按照同样的规则进行比赛,共进行n轮比赛,最后剩下的一个队伍即为冠军,求最可能成为冠军的队伍。输入为2^n行2^n列,第i 行第 j 列的值p[i][j] 表示第i个队伍打败第j个队伍的概率。


解题思路:据大神说,这是个简单的dp题,于是我就一直推啊推,历经两个小时终于推出状态转移方程了,交一发wrong掉了,后来发现是一个小细节处理失误了,嘎嘎 貌似这是第一次独立做出dp题啊,HAPPY啊~~ 

我想的比较绕,先说一下大神的思路吧 ,简单易懂。

用dp[i][j]表示第i轮比赛第j个队伍获胜的概率,则dp[0][i]  = 1 , dp[i][j] +=  dp[i-1][j] * dp[i-1][k] * p[j][k]; k取决于i和j。最后找到dp[n][i]中最大值对应的队伍号即可。

假设有4支队伍,第一轮对决:0和1,2和3;第二轮:0和2或3, 1和2或3,2和1或0,3和1或0 ……(队伍号下标从0开始)

第一轮:

dp[1][0] = dp[0][0] * dp[0][1] * p[0][1];

dp[1][1] 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值