第二道高斯消元练习题


题意

一张无向图,从点 $1$ 出发每次随机选一条出边走,走到 $n$ 停止,求经过的所有边权异或和的期望。

$n\le 100$

题解

注意一点,异或和的期望 $≠$ 期望的异或和,因为期望是小数,但小数(在 c++ 里)不能异或,而且“期望”具体是什么期望啊。

异或有一个神奇的性质就是每个二进制位互不关联。

所以我们可以拆开考虑每一个二进制位的异或和。

拆位考虑后,还能发现一位的异或和只能是 $0$ 或 $1$,还比较好维护。

对于当前考虑的一个二进制位,设 $dp(i)$ 表示走到点 $i$ 时异或和为 $1$ 的概率,则 $1-dp(i)$ 表示异或和为 $0$ 的概率。

转移也比较显然:$$f(i) = \frac{\sum_{w=0} f(x) + \sum_{w=1} (1-f(x))}{du_i}$$

其中点 $x$ 表示与点 $i$ 直接相连的点,$w$ 表示这条连边的边权。

通过拆 $\sum$、移项得到 $$-\sum_{w=1} 1 = \sum_{w=0} f(x) - \sum_{w=1} f(x) - f(i)\times du_i$$

这就是标准高斯消元的方程了。

合并每个二进制位的答案:$ans+=2^i\times dp_i(n)$

最新文章

  1. SSAS:OLE DB 错误: OLE DB 或 ODBC 错误 : Login failed for user 'NT Service\MSSQLServerOLAPService'
  2. php 日期时间操作-可算出几天后的时间
  3. _BLOCK_TYPE_IS_VALID错误
  4. Flexigrid的API
  5. AngularJS学习笔记4
  6. [Python Study Notes]字符串处理技巧(持续更新)
  7. ASP.NET Core 2.1 : 十四.静态文件与访问授权、防盗链
  8. C# 中String.Join()方法
  9. 异常--finally关键字
  10. 一、Oracle 安装
  11. 深度学习原理与框架-递归神经网络-RNN_exmaple(代码) 1.rnn.BasicLSTMCell(构造基本网络) 2.tf.nn.dynamic_rnn(执行rnn网络) 3.tf.expand_dim(增加输入数据的维度) 4.tf.tile(在某个维度上按照倍数进行平铺迭代) 5.tf.squeeze(去除维度上为1的维度)
  12. 浅谈ESB中的DataRow、DataSet、DataBag 、DataBox
  13. FireFox升级后FireBug不能使用
  14. JavaScript学习 - 基础(八) - DOM 节点 添加/删除/修改/属性值操作
  15. MongoDB ReplicaSet 集群搭建
  16. 使用U盘安装Ubuntu系统
  17. [原]使用Fiddler捕获java的网络通信数据
  18. 3-urllib的post请求方式
  19. Egret3D学习笔记一 (Unity插件使用)
  20. npm设置仓库

热门文章

  1. MySQL基础教程——创建数据库并插入数据
  2. 小技巧:unicode RLO
  3. matplotlib绘图(四)
  4. Linux常用文档操作命令--2
  5. salt 模板
  6. 事务控制语言DTL
  7. 【mac】【转发】Mac系统升级后,按大小写键没反应了,切换大小写的灯不亮了
  8. 安装pymysql后,import pymysql,pycharm编辑器中报错
  9. 9-11.Yii2.0框架控制器分配视图并传参xss攻击脚本视图的过滤
  10. python操作日志的封装