[HNOI2011]XOR和路径 题解
设 \(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和路径 题解的更多相关文章
- BZOJ2337:[HNOI2011]XOR和路径——题解
+++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...
- 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 682 Solved: 384[Submit][Stat ...
- BZOJ2337: [HNOI2011]XOR和路径
题解: 异或操作是每一位独立的,所以我们可以考虑每一位分开做. 假设当前正在处理第k位 那令f[i]表示从i到n 为1的概率.因为不是有向无环图(绿豆蛙的归宿),所以我们要用到高斯消元. 若有边i-& ...
- 【BZOJ2337】[HNOI2011]XOR和路径 期望DP+高斯消元
[BZOJ2337][HNOI2011]XOR和路径 Description 题解:异或的期望不好搞?我们考虑按位拆分一下. 我们设f[i]表示到达i后,还要走过的路径在当前位上的异或值得期望是多少( ...
- BZOJ 2337: [HNOI2011]XOR和路径( 高斯消元 )
一位一位考虑异或结果, f(x)表示x->n异或值为1的概率, 列出式子然后高斯消元就行了 --------------------------------------------------- ...
- BZOJ 2337: [HNOI2011]XOR和路径 [高斯消元 概率DP]
2337: [HNOI2011]XOR和路径 题意:一个边权无向连通图,每次等概率走向相连的点,求1到n的边权期望异或和 这道题和之前做过的高斯消元解方程组DP的题目不一样的是要求期望异或和,期望之间 ...
- [HNOI2011]XOR和路径 && [HNOI2013]游走
[HNOI2011]XOR和路径 题目大意 具体题目:戳我 题目: 给定一个n个点,m条边的有重边.有自环的无向图,其中每个边都有一个边权. 现在随机选择一条1到n的路径,路径权值为这条路径上所有边权 ...
- 【BZOJ 2337】 2337: [HNOI2011]XOR和路径(概率DP、高斯消元)
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1170 Solved: 683 Description ...
- [Wc2011] Xor 和 [HNOI2011]XOR和路径
Xor F.A.Qs Home Discuss ProblemSet Status Ranklist Contest 入门OJ ModifyUser autoint Logout 捐赠本站 Prob ...
随机推荐
- Kubernetes 实战——升级应用(Deployment)
一.更新运行在 Pod 内的应用程序 1. 修改 Pod 模板 将导致应用程序在一定时间内不可用 2. 修改 Service 的 Pod 选择器 需要同时运行两倍的 Pod 3. 滚动升级 应用程序需 ...
- nvm安装管理nodejs
安装nodejs运行环境 相关连接 步骤 下载nvm-window并安装: https://github.com/coreybutler/nvm-windows/releases 下载完成后直接解压安 ...
- Spring Boot WebFlux-06——WebFlux 整合 Redis
第06课:WebFlux 整合 Redis 前言 上一篇内容讲了如何整合 MongoDB,这里继续讲如何操作 Redis 这个数据源,那什么是 Reids? Redis 是一个高性能的 key-val ...
- csps考前的一些总结(然而可能并没有用)
记录考前的一些复习和总结,如果没有特殊情况不再写新的题解了 图论: 一.最短路: 1.spfa算法中的vis数组记录的是有没有入队,防止多次入队,通过松弛操作来达到最优解 2.dijkstra算法的v ...
- csp-s模拟测试56(10.2)Merchant「二分」·Equation「树状数组」
又死了......T1 Merchant 因为每个集合都可以写成一次函数的形式,所以假设是单调升的函数,那么随着t越大就越佳 而单调减的函数,随着t的增大结果越小,所以不是单调的??? 但是我们的单调 ...
- Windows内核开发-Windows内部概述-2-
Windows内部概述-2- 线程: 执行代码的实体是线程.一个线程的包含在进程里面的,线程使用进程提供的资源来运行代码. 一个线程拥有以下的内容: 1:明确的运行模式,用户态或者内核态. 2:执行的 ...
- Java知识复习(四)
最近准备跳槽,又要好好复习基本知识了.过了个年,前面刚接触的springboot也只能先放放了.就先把自己复习了哪些罗列出来吧. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用== ...
- pipenv管理模块和包
pipenv安装 1. 在终端输入:pip install pipenv进行安装 用pipenv创建虚拟环境:pipenv install,在哪个文件下运行这个命令,就是给哪个文件创建虚拟环境 这 ...
- 我用段子讲.NET之依赖注入其一
<我用段子讲.NET之依赖注入其一> 1) 西城的某个人工湖畔,湖水清澈见底,湖畔柳树成荫.人工湖往北,坐落着两幢写字楼,水晶大厦靠近地铁站,由于为了与湖面天际线保持一致,楼层只有26层高 ...
- JUL 日志框架
1.JUL 简介 JUL 全称 Java Util Logging,位于java.util.logging.Logger 包.它是 java 原生的日志框架,使用时无需另外引用第三方的类库,相对其他的 ...