BZOJ 2337 - [HNOI2011]XOR和路径

题目链接
题意:给一张n个点,m条边的带环无向连通图,求1-n路径上的权值Xor起来的期望。
即无向有环图上求路径Xor期望。

因为是Xor操作,所以我们可以按二进制位分开考虑。
设考虑到了第k位,
那么现在这个图中的边权只有01
期望问题反着设一般比较好列方程,所以我们设f[i]为从i这个点走到nXor值是1的期望,显然f[n]==0
∑2^k*f[1]即为答案。
P[i]为从i点出发的走每条边的概率,应该等于1/degree[i]
我们可以列一组dp方程:
f[i]=∑P[i]*f[j](w[j,i]==0)+∑P[i]*(1-f[j])(w[j,i]==1)
w[j,i]==0则从这条边走过来Xor值不变,w[j,i]==1则从这条边走过来Xor值取反,(1-f[j])即为在jXor值是0的期望。

然后有了这些Dp方程后,发现无法Dp,因为是带环的,所以不能够以某一个顺序计算,这时可以用高斯消元解决。把每个f[i]当作变量,n个变量,n个方程,解一下就好了。

程序实现时,注意自环度数只能算1。
代码:https://gist.github.com/zrt/041f840129ba29309c54

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值