HDU 4035 Maze

一、题目

二、解法

d p [ i ] dp[i] dp[i]为在点 i i i出发要找到出口的期望步数,我们很轻易地列出下列 d p dp dp式:
d p [ i ] = ∑ s o n ( d p [ s o n ] + 1 ) ∗ p [ i ] + e [ i ] ∗ 0 + ( d p [ f a ] + 1 ) ∗ p [ i ] + k [ i ] ∗ d p [ 1 ] dp[i]=\sum_{son}(dp[son]+1)*p[i]+e[i]*0+(dp[fa]+1)*p[i]+k[i]*dp[1] dp[i]=son(dp[son]+1)p[i]+e[i]0+(dp[fa]+1)p[i]+k[i]dp[1]
其中 p [ i ] = ( 1 − e [ i ] − k [ i ] ) / d e g [ i ] p[i]=(1-e[i]-k[i])/deg[i] p[i]=(1e[i]k[i])/deg[i],意思是随机走向相邻点的概率, d e g [ i ] deg[i] deg[i] i i i的度数,很显然,答案是 d p [ 1 ] dp[1] dp[1]
但是我们不可能直接转移,因为可能存在互相推的情况(我们一直要使用 d p [ 1 ] dp[1] dp[1]),而用高斯消元硬解肯定要 G G GG GG。由于这是一颗树,我们来考虑树的特殊性质(树形 d p dp dp)。
由于 d p [ i ] dp[i] dp[i]可以当常量看待,我们尝试手动减少未知量的个数(即对 d p [ s o n ] dp[son] dp[son] d p [ f a ] dp[fa] dp[f

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值