设 \(f(x)\) 表示从 \(x\) 节点走到 \(n\) 的期望。有 $$f(x)=\sum_{{x,y}}\frac{f(y)\oplus w(x,y)}{{\rm deg}(x)}$$ 由于有后效性,无法 DP 求得。于是可以将其看作未知数,\(n\) 个点构成 \(n\) 个 \(n\) 元一次方程,解方程即可。

但还是不太好求,考虑期望的线性性,按位处理。

重新记 \(f(x)\) 表示当前位的 \(x\) 走到 \(n\) 异或和为 \(1\) 的概率,有 $${\rm deg}(x)f(x)=\sum_{w(x,y)=1}f(y)+\sum_{w(x,y)=0}\big(1-f(y)\big)$$ 最后的答案为 \(\sum\limits_{t=1}^{32} 2^{t-1}\cdot f(1)\)。

为了消元简便,实际求的过程中我们把方程写成 $$\sum_{w(x,y)=0}f(y)-\sum_{w(x,y)=1}f(y)-{\rm deg}(x)f(x)=-\sum_{w(x,y)=1}1$$

注意自环只用算一次。

别颓废了……抓紧时间……

#include <bits/stdc++.h>
using namespace std; const int N=105,M=10005;
const double eps=1e-8;
struct Edge{int to,nxt,w;}e[M<<1];
int n,m,cnt,head[N],deg[N];
double ans,a[N][N]; inline void add(int u,int v,int w) {e[++cnt]=(Edge){v,head[u],w};head[u]=cnt;} void gauss()
{
for(int i=1;i<=n;++i)
{
int t=i;
for(int j=i+1;j<=n;++j)
if(fabs(a[j][i])>fabs(a[t][i])) t=j;
for(int j=i;j<=n+1;++j) swap(a[t][j],a[i][j]);
for(int j=n+1;j>=i;--j) a[i][j]/=a[i][i];
for(int j=1;j<=n;++j)
if(i!=j)
for(int k=n+1;k>=i;--k)
a[j][k]-=a[j][i]*a[i][k];
}
} int main()
{
scanf("%d%d",&n,&m);
for(int i=1,d,b,c;i<=m;++i)
{
scanf("%d%d%d",&d,&b,&c);
if(d==b)
{
deg[d]++; add(d,b,c);
}
else
{
deg[d]++,deg[b]++;
add(d,b,c); add(b,d,c);
}
}
for(int k=30;~k;--k)
{
memset(a,0,sizeof(a));
for(int u=1;u<n;++u)
{
a[u][u]=-deg[u];
for(int i=head[u];i;i=e[i].nxt)
{
int v=e[i].to,w=(e[i].w>>k)&1;
if(w) a[u][v]-=1,a[u][n+1]-=1;
else a[u][v]+=1;
}
}
a[n][n]=1; gauss();
ans+=(1<<k)*a[1][n+1];
}
printf("%.3lf",ans);
return 0;
}

[HNOI2011]XOR和路径 题解的更多相关文章

  1. BZOJ2337:[HNOI2011]XOR和路径——题解

    +++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...

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

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

  3. BZOJ2337: [HNOI2011]XOR和路径

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

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

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

  5. BZOJ 2337: [HNOI2011]XOR和路径( 高斯消元 )

    一位一位考虑异或结果, f(x)表示x->n异或值为1的概率, 列出式子然后高斯消元就行了 --------------------------------------------------- ...

  6. BZOJ 2337: [HNOI2011]XOR和路径 [高斯消元 概率DP]

    2337: [HNOI2011]XOR和路径 题意:一个边权无向连通图,每次等概率走向相连的点,求1到n的边权期望异或和 这道题和之前做过的高斯消元解方程组DP的题目不一样的是要求期望异或和,期望之间 ...

  7. [HNOI2011]XOR和路径 && [HNOI2013]游走

    [HNOI2011]XOR和路径 题目大意 具体题目:戳我 题目: 给定一个n个点,m条边的有重边.有自环的无向图,其中每个边都有一个边权. 现在随机选择一条1到n的路径,路径权值为这条路径上所有边权 ...

  8. 【BZOJ 2337】 2337: [HNOI2011]XOR和路径(概率DP、高斯消元)

    2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1170  Solved: 683 Description ...

  9. [Wc2011] Xor 和 [HNOI2011]XOR和路径

    Xor F.A.Qs Home Discuss ProblemSet Status Ranklist Contest 入门OJ ModifyUser  autoint Logout 捐赠本站 Prob ...

随机推荐

  1. Qt信号槽机制理解

    1. 信号和槽概述 > 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式(发布-订阅模式).当某个`事件`发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(s ...

  2. LeetCode:322. 零钱兑换

    链接:https://leetcode-cn.com/problems/coin-change/ 标签:动态规划.完全背包问题.广度优先搜索 题目 给定不同面额的硬币 coins 和一个总金额 amo ...

  3. PyQt5开发实践(一、准备篇)

    前言 近一年来我开发了不少PyQt小项目,因为之前没用过使用C++语言的Qt,所以可以算是从零基础开始边学边做的,这个过程中再一次体会到国内技术社区的匮乏-- 国内关于PyQt的资料说少不少,说多也不 ...

  4. 聊一聊.NET Core结合Nacos实现配置加解密

    背景 当我们把应用的配置都放到配置中心后,很多人会想到这样一个问题,配置里面有敏感的信息要怎么处理呢? 信息既然敏感的话,那么加个密就好了嘛,相信大部分人的第一感觉都是这个,确实这个是最简单也是最合适 ...

  5. ffmpeg实战-音视频合成案例

    转发自白狼栈:查看原文 很多小伙伴私下里留言说,之前没接触过音视频,对于ffmpeg可以做什么还是有些懵. 今天我们一起看下我们究竟可以用 ffmpeg 做什么? 很多小伙伴应该都玩过抖音,你在&qu ...

  6. iNeuOS工业互联网平台,在高校教学实训领域的应用

    目       录 1.      概述... 2 2.      实训柜... 2 3.      培训内容... 4 4.      二次开发培训... 5 1.   概述 中国工业互联网从 0 ...

  7. STM32学习笔记-NVIC中断知识点

    STM32学习笔记-NVIC中断知识点总结 中断优先级设置步骤 1. 系统运行后先设置中断优先级分组 函数:void NVIC_PriorityGroupConfig(uint32_tNVIC_Pri ...

  8. grep过滤空行和注释行

    1)grep的排除选项为 -v排除空行的命令是:grep -v '^$' filename 2)排除以#注释的命令是:grep -v '^#' filename 3)结合起来就是,既排除空行又排除注释 ...

  9. SQL 利用存储过程实现对表数据有则更新无则添加(转)

    初学存储过程,发现这篇文章简单易懂,特意转载,地址 http://blog.csdn.net/luotuomianyang/article/details/52013144 如果某一操作包含大量的T- ...

  10. Siamese network总结

    ​前言: 本文介绍了Siamese (连体)网络的主要特点.训练和测试Siamese网络的步骤.Siamese网络的应用场合.Siamese网络的优缺点.为什么Siamese被称为One-shot分类 ...