bzoj2337 XOR和路径
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2337
首先:因为是异或和,所以可以考虑每一位考虑。
就在每一位上求一下该位是1的概率,乘以1<<k累加到答案里就行了。
可以用a[i]表示从 i 点走到 n 点的该位是1的概率。
如果 i , j 有边,考虑 j 对 i 有什么影响,可以设定成正在从 i 往 j 走,最后走到n;
那么,如果这条边是1,则 j 到 n 是0的概率可以累加到 i 到 n 是1的概率;如果边是0,则 j 到 n 是1的概率可以累加到 i 到 n 是1的概率。
( j 到 n 是0的概率就是(1-a[ j ]),(1-a[ j ])/ du[ j ] 拆一下就是在得数中减去1/du[ j ],a[ j ]的系数是-1/du[ j ])
而且 x[n] 应该赋初值0,才符合自己的定义。
看到很多题解好像和自己的正相反,符号、和 x[n] 的初值都是相反的,到底是怎么回事呢?
(虽然不知道意义,但全反一下还是能求出正解吗……)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=,M=,lm=;
int n,m,head[N],xnt,du[N];
double f[N][N],a[N],ans;
struct Edge{
int next,to,w;
Edge(int n=,int t=,int w=):next(n),to(t),w(w) {}
}edge[M<<];
void init(int l)
{
memset(f,0.0,sizeof f);
for(int i=;i<n;i++)
{
f[i][i]=-;
for(int j=head[i];j;j=edge[j].next)//从i走到v
if(edge[j].w&l)
f[i][edge[j].to]-=1.0/du[i],f[i][n+]-=1.0/du[i];
else f[i][edge[j].to]+=1.0/du[i];
}
}
void gauss()
{
for(int i=;i<n;i++)
{
for(int j=n+;j>=i;j--)f[i][j]/=f[i][i];
for(int j=i+;j<n;j++)
for(int k=n+;k>=i;k--)
f[j][k]-=f[j][i]*f[i][k];
}
for(int i=n-;i;i--)
{
a[i]=f[i][n+];
for(int j=i-;j;j--)
f[j][n+]-=f[j][i]*a[i];
}
}
int main()
{
scanf("%d%d",&n,&m);int x,y,z;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
edge[++xnt]=Edge(head[x],y,z);head[x]=xnt;du[x]++;
if(x!=y)edge[++xnt]=Edge(head[y],x,z),head[y]=xnt,du[y]++;
}
for(int i=;i<lm;i++)
{
init(<<i);gauss();
ans+=(<<i)*a[];
}
printf("%.3lf",ans);
return ;
}
bzoj2337 XOR和路径的更多相关文章
- BZOJ-2337 XOR和路径(HNOI2011)概率DP+概率的线性叠加
题意:给出n个点和m条边,每条边有权值wi,从1出发,每次等概率选一条出边走,直到终点n停止,得到的值是路径所有边的异或和.问异或和期望. 解法:这道题非常有意思!首先比较直观的想法就是dp[x]代表 ...
- bzoj2337 XOR和路径——高斯消元
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2337 异或就一位一位考虑: x为到n的概率,解方程组即可: 考虑了n就各种蜜汁错误,所以索性 ...
- 【BZOJ2337】Xor和路径(高斯消元)
[BZOJ2337]Xor和路径(高斯消元) 题面 BZOJ 题解 我应该多学点套路: 对于xor之类的位运算,要想到每一位拆开算贡献 所以,对于每一位拆开来看 好了,既然是按位来算 我们就只需要计算 ...
- 【BZOJ2337】[HNOI2011]XOR和路径 期望DP+高斯消元
[BZOJ2337][HNOI2011]XOR和路径 Description 题解:异或的期望不好搞?我们考虑按位拆分一下. 我们设f[i]表示到达i后,还要走过的路径在当前位上的异或值得期望是多少( ...
- BZOJ2337: [HNOI2011]XOR和路径
题解: 异或操作是每一位独立的,所以我们可以考虑每一位分开做. 假设当前正在处理第k位 那令f[i]表示从i到n 为1的概率.因为不是有向无环图(绿豆蛙的归宿),所以我们要用到高斯消元. 若有边i-& ...
- 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 682 Solved: 384[Submit][Stat ...
- 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的路径,路径权值为这条路径上所有边权 ...
随机推荐
- Python笔记 #17# Pandas: Merge
10 Minutes to pandas Concat df = pd.DataFrame(np.random.randn(10, 4)) print(df) # break it into piec ...
- Vue学习笔记之Vue指令系统介绍
所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. OK,接下来我们 ...
- bzoj1623 / P2909 [USACO08OPEN]牛的车Cow Cars
P2909 [USACO08OPEN]牛的车Cow Cars 显然的贪心. 按速度从小到大排序.然后找车最少的车道,查询是否能填充进去. #include<iostream> #inclu ...
- Python3.x:简单时间调度Timer(间隔时间执行)
Python3.x:简单时间调度Timer(间隔时间执行) threading模块中的Timer能够帮助实现定时任务,而且是非阻塞的: 代码: import threading import time ...
- 树莓派实践部分——P2P文件下载机torrent之Raspberry Pi管理
树莓派实践--P2P文件下载机torrent之Raspberry Pi管理 一.树莓派配置文件共享软件deluge 在进行实践之前,先通过命令sudo apt-get update 和sudo apt ...
- bzoj 4443: [Scoi2015]小凸玩矩阵
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 149 Solved: 81[Submit][Status][Discuss] Description ...
- java类同时引用父类和接口的成员变量,需要指明是父类的还是接口的
code: package com.qhong; public class Main extends B implements A{ public static void main(String[] ...
- nginx.conf 配置详解
目录 pid user error_log worker_connections include http server nginx主配置文件中的内容 pid 主线程id的存储位置. # cat /u ...
- 解决本地项目推送到码云(github),上提示:failed to push some refs to ...
本地项目上传github 命令如下: 1.git init 2.git add . 3.git commit -m "init" 4.git remote add origin ...
- flutter 安装详细教程
Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台开发高质量原生 UI 的移动 SDK.Flutter 兼容现有的代码,免费且开源,在全球开发者中广泛被使用. 安 ...