题面

bzoj

Sol

设\(f[i]\)表示\(i到n\)的路径权值某一位为\(1\)的期望

枚举每一位,高斯消元即可

不要问我为什么是\(i\ - \ n\)而不可以是\(1\ - \ i\)

  1. # include <bits/stdc++.h>
  2. # define RG register
  3. # define IL inline
  4. # define Fill(a, b) memset(a, b, sizeof(a))
  5. using namespace std;
  6. typedef long long ll;
  7. const int _(105);
  8. const int __(20005);
  9. IL ll Input(){
  10. RG ll x = 0, z = 1; RG char c = getchar();
  11. for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;
  12. for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
  13. return x * z;
  14. }
  15. int n, m, fst[_], nxt[__], to[__], cnt, w[__], pw[_] = {1}, dg[_];
  16. double a[_][_], f[_], ans;
  17. IL void Add(RG int u, RG int v, RG int ww){
  18. w[cnt] = ww; to[cnt] = v; nxt[cnt] = fst[u]; fst[u] = cnt++; ++dg[v];
  19. }
  20. IL void Gauss(){
  21. for(RG int i = 1; i < n; ++i)
  22. for(RG int j = i + 1; j <= n; ++j){
  23. RG double div = a[j][i] / a[i][i];
  24. for(RG int k = 1; k <= n + 1; ++k) a[j][k] -= a[i][k] * div;
  25. }
  26. for(RG int i = n; i; --i){
  27. f[i] = a[i][n + 1] / a[i][i];
  28. for(RG int j = i - 1; j; --j) a[j][n + 1] -= a[j][i] * f[i];
  29. }
  30. }
  31. int main(RG int argc, RG char* argv[]){
  32. n = Input(); m = Input(); Fill(fst, -1);
  33. for(RG int i = 1; i <= 30; ++i) pw[i] = pw[i - 1] << 1;
  34. for(RG int i = 1; i <= m; ++i){
  35. RG int u = Input(), v = Input(), ww = Input();
  36. Add(u, v, ww); if(u != v) Add(v, u, ww);
  37. }
  38. for(RG int i = 0; i <= 30; ++i){
  39. Fill(a, 0); a[n][n] -= 1.0;
  40. for(RG int u = 1; u < n; ++u){
  41. a[u][u] -= 1.0;
  42. for(RG int e = fst[u]; e != -1; e = nxt[e])
  43. if(~w[e] & pw[i]) a[u][to[e]] += 1.0 / dg[u];
  44. else a[u][n + 1] -= 1.0 / dg[u], a[u][to[e]] -= 1.0 / dg[u];
  45. }
  46. Gauss();
  47. ans += f[1] * pw[i];
  48. }
  49. printf("%.3lf\n", ans);
  50. return 0;
  51. }

Bzoj2337:[HNOI2011]XOR和路径的更多相关文章

  1. BZOJ2337: [HNOI2011]XOR和路径

    题解: 异或操作是每一位独立的,所以我们可以考虑每一位分开做. 假设当前正在处理第k位 那令f[i]表示从i到n 为1的概率.因为不是有向无环图(绿豆蛙的归宿),所以我们要用到高斯消元. 若有边i-& ...

  2. BZOJ2337:[HNOI2011]XOR和路径(高斯消元)

    Description 给定一个无向连通图,其节点编号为 1 到 N,其边的权值为非负整数.试求出一条从 1 号节点到 N 号节点的路径,使得该路径上经过的边的权值的“XOR 和”最大.该路径可以重复 ...

  3. [BZOJ2337][HNOI2011]XOR和路径(概率+高斯消元)

    直接不容易算,考虑拆成位处理. 设f[i]表示i到n的期望路径异或和(仅考虑某一位),则$f[y]=\sum\limits_{exist\ x1\to y=0}\frac{f[x1]}{d[x1]}+ ...

  4. BZOJ2337: [HNOI2011]XOR和路径(期望 高斯消元)

    题意 题目链接 Sol 期望的线性性对xor运算是不成立的,但是我们可以每位分开算 设\(f[i]\)表示从\(i\)到\(n\)边权为1的概率,统计答案的时候乘一下权值 转移方程为 \[f[i] = ...

  5. BZOJ2337 [HNOI2011]XOR和路径 【概率dp + 高斯消元】

    题目 题解 突然get到这样路径期望的题目八成是高斯消元 因为路径上的dp往往具有后效性,这就形成了一个方程组 对于本题来说,直接对权值dp很难找到突破口 但是由于异或是位独立的,我们考虑求出每一位的 ...

  6. BZOJ2337: [HNOI2011]XOR和路径(高斯消元,期望)

    解题思路: Xor的期望???怕你不是在逗我. 按为期望,新技能get 剩下的就是游走了. 代码: #include<cmath> #include<cstdio> #incl ...

  7. bzoj千题计划191:bzoj2337: [HNOI2011]XOR和路径

    http://www.lydsy.com/JudgeOnline/problem.php?id=2337 概率不能异或 但根据期望的线性,可以计算出每一位为1的概率,再累积他们的期望 枚举每一位i,现 ...

  8. BZOJ2337: [HNOI2011]XOR和路径 期望概率dp 高斯

    这个题让我认识到我以往对于图上期望概率的认识是不完整的,我之前只知道正着退还硬生生的AC做过的所有图,那么现在让我来说一下逆退,一般来说对于概率性的东西都只是正推,因为有了他爸爸才有了他,而对于期望性 ...

  9. 【BZOJ2337】[HNOI2011]XOR和路径 期望DP+高斯消元

    [BZOJ2337][HNOI2011]XOR和路径 Description 题解:异或的期望不好搞?我们考虑按位拆分一下. 我们设f[i]表示到达i后,还要走过的路径在当前位上的异或值得期望是多少( ...

  10. 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径

    2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 682  Solved: 384[Submit][Stat ...

随机推荐

  1. 浅显总结ASCII Unicode UTF-8的区别

    如果觉得此地排版不好,欢迎访问我的博客 浅显总结ASCII Unicode UTF-8的区别 制作表单时,为了追求更好的用户交互体验,常常会有提示性的内容,比如提醒用户字符的限制.由于英文,中文字符的 ...

  2. ios开发常用RGB色值

    iOS中RGB常用的色值,同时可将对颜色的设置定义成宏,方便开发应用,如: // RGB颜色转换(16进制->10进制) #define UIColorFromRGB(rgbValue) [UI ...

  3. golang验证提交的数据中某个字段是否重复

    提交的json数据如下: { , , , ", , , "screen_mode": "3,2", , "ad_plats":[ ...

  4. Ubuntu配置Nginx虚拟主机和支持ThinkPHP

    [Nginx配置虚拟主机] 每一个 server { listen       80;         server_name  www.a.com; ..... } 就表示一台虚拟域名, 然后对应的 ...

  5. 【收藏】8段JQuery处理表单的代码片段,很实用

    1 只接受数字输入 $("#uAge").keydown(function(event) { // 允许退格和删除键 if ( event.keyCode == 46 || eve ...

  6. ajax请求中contentType与dataType区别

    contentType: 告诉服务器,我要发什么类型的数据,默认值: "application/x-www-form-urlencoded". dataType:告诉服务器,我要想 ...

  7. 15-谜问题(深拷贝、LC检索、面向对象编程)

    问题描述: 在一个分成16格的方形棋盘上,放有15块编了号码的牌.对这些牌给定一种初始排列,要求通过一系列的合法移动将这一初始排列转换成目标排列. 这个问题解决时用到了L-C检索.在检索的过程中计算估 ...

  8. 《android开发艺术探索》读书笔记(十三)--综合技术

    接上篇<android开发艺术探索>读书笔记(十二)--Bitmap的加载和Cache No1: 使用CrashHandler来获取应用的crash信息 No2: 在Android中单个d ...

  9. 历届试题 剪格子 IDA*

    思路:限制当前能剪下的最大格子数,保证能得到最少数目.IDA*的典型运用. AC代码 #include <cstdio> #include <cmath> #include & ...

  10. java网络编程(7)——利用tcp实现文件上传

    其实客户端与服务端通讯的道理都是一样的,都是通过输入与输出这两个流,那么实现文件上传也就是同样的,客户端把文件读到文件流,服务端用文件流来接受,然后写到一个文件中,这样子就实现了文件上传,文件拷贝也是 ...