BZOJ-2337-XOR和路径

描述

这里写图片描述


分析

  • 转化为二进制按位来计算, 最后把每一位的加起来
  • f[i]表示i到n的期望路径长度, d[i]表示i的度
  • 因为i的期望是由i走到的点状态转移得到的, 所以在计算概率时应该用i的度来算
  • 如果i到j的边的权值的第 BIT 位是0, 任何数异或0都是它本身, 所以f[i] = f[j] / d[i] + …
  • 如果i到j的边的权值的第 BIT 位是1, 异或一相当于取反. 所以f[i] = (1-f[j]) / d[i] + …
  • 然后列出f[i]的方程, 移项使所有的f值在左边, 右边剩一堆常数, 就可以高斯消元了.
  • 有n个方程, n个变量. 解出X, ans = sum{X[0] * (1 << BIT) | 0 <= BIT < 30 即可}

代码

https://code.csdn.net/snippets/619507

posted @ 2015-03-14 17:37  wfwbz  阅读(110)  评论(0编辑  收藏  举报