bzoj 2337: [HNOI2011]XOR和路径
Description

Input
Output
Sample Input
Sample Output
HINT
Source
终于把这个史前遗留的坑给填了。。。
首先异或的话由位无关性,可以按位处理。。。
那么对于每一位,设f[i]表示从i出发第一次到达n且xor和为1的概率,out[i]为i的出边,那么转移就比较容易了。。。
if(w(i,j)&xxx) f[i]+=(1-f[j)/out[i];// 这条边该位为1,需要xor上0,xor和才为1
else f[i]+=f[j]/out[i];//同上。。。
但是这个有环,而且可以走重边自环,肯定是不能dp的,
但是我们发现对于每个f[i]=f[j]/out[i]+(1-f[j']/out[i])...都是一个线性方程。。。所以这是一个线性方程组。。。
然后我们由已知f[n]=1,所以可以用高斯消元解决。。。很妙啊。。。
// MADE BY QT666
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=150;
const int M=200050;
int out[N];
int head[M],nxt[M],to[M],cnt,w[M],n,m;
double a[N][N],ans;
void gauss() {
for(int i=1;i<=n;i++) {
int t=i;
while(!a[t][i]) t++;
if(i!=t) swap(a[t],a[i]);
double k=a[i][i];
for(int j=i;j<=n+1;j++) a[i][j]/=k;
for(int j=1;j<=n;j++)
if(j!=i&&a[j][i]) {
k=a[j][i];
for(int p=i;p<=n+1;p++) a[j][p]-=k*a[i][p];
}
}
}
void lnk(int x,int y,int z){
to[++cnt]=y,nxt[cnt]=head[x],w[cnt]=z,head[x]=cnt;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
int u,v,val;scanf("%d%d%d",&u,&v,&val);
lnk(u,v,val);out[u]++;
if(u!=v) out[v]++,lnk(v,u,val);
}
int gg;
for(int k=0;k<=30;k++){
if(k==0) gg=1;else gg=gg<<1;
memset(a,0,sizeof(a));
for(int i=1;i<n;i++){
a[i][i]=-1.0;
for(int j=head[i];j;j=nxt[j]){
int y=to[j];
if(w[j]&gg){
a[i][y]-=1.0/out[i],a[i][n+1]-=1.0/out[i];
}
else a[i][y]+=1.0/out[i];
}
}
a[n][n]=-1.0;gauss();ans+=a[1][n+1]*gg;
}
printf("%.3f\n",ans);
return 0;
}
bzoj 2337: [HNOI2011]XOR和路径的更多相关文章
- 【概率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的题目不一样的是要求期望异或和,期望之间 ...
- ●BZOJ 2337 [HNOI2011]XOR和路径
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=2337题解: 概率dp, 因为异或的每一位之间没有关系,我们就依次考虑每一位k.(即边权要么为 ...
- bzoj 2337 [HNOI2011]XOR和路径【高斯消元+dp】
首先,我们发现,因为是无向图,所以相连的点之间是有"依赖性"的,所以不能直接用dp求解. 因为是xor,所以按位处理,于是列线性方程组,设$ x[i] $为点i到n异或和为1的期望 ...
- BZOJ 2337 [HNOI2011]XOR和路径 ——期望DP
首先可以各位分开求和 定义$f(i)$表示从i到n的期望值,然后经过一些常识,发现$f(n)=1$的时候的转移,然后直接转移,也可以找到$f(n)=0$的转移. 然后高斯消元31次就可以了. #inc ...
- 【BZOJ 2337】 2337: [HNOI2011]XOR和路径(概率DP、高斯消元)
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1170 Solved: 683 Description ...
- 【BZOJ】2337: [HNOI2011]XOR和路径 期望+高斯消元
[题意]给定n个点m条边的带边权无向连通图(有重边和自环),在每个点随机向周围走一步,求1到n的期望路径异或值.n<=100,wi<=10^9. [算法]期望+高斯消元 [题解]首先异或不 ...
- 2337:[HNOI2011]XOR和路径 - BZOJ
昨天才做了一道高斯消元,一下要精度判断,一下又不要精度判断 主要是思路很重要 很容易想到每一个二进制位算一个概率,然后求和,设f[i]为走到从i走到n这一个二进制位为1的概率 f[i]:=∑{f[j] ...
随机推荐
- java中的static和final关键字
一:static 1)修饰成员变量: static关键字可以修饰成员变量,它所修饰的成员变量不属于对象的数据结构,而是属于类的变量,通常通过类名来引用static成员. 当创建对象后,成员变量是存储在 ...
- 使用 Bundle 在 Activity 之间交换数据
[toc] 使用 Bundle 在 Activity 之间交换数据 场景 当一个 Activity 启动另一个 Activity 时,常常会有一些数据需要传过去.因为两个 Activity 之间本来就 ...
- 一个部署了tomcat服务的linux服务器,运行一段时间后出现内存和空间不足的问题
—— 前段时间项目上的事比较忙,期间笔记都是临时存在本地txt,这些天有点时间了,整理出来,以便日后查看: linux 查看内存使用情况:free -m 释放缓存: /proc/sys/vm/drop ...
- POJ 1511 Invitation Cards 链式前向星+spfa+反向建边
Invitation Cards Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 27200 Accepted: 902 ...
- Linux下如何彻底删除MySQL
1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql可以看到如下图的所示: 说明之前安装了:MySQL-client-5.5.25a-1.rhel5MySQL-server ...
- linux工作中遇到的问题总结---更新中
今天这个,严格来说不算一篇文章,我只想把我工作中遇到的问题分享给大家,让大家少犯错误. 1.安装rmp包时出现错误 :header V3 DSA signature: nokey ,key id .. ...
- svn服务器的搭建与使用二
转载出处 上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用. 首 ...
- 黑马day16 jquery&属性过滤选择器
属性过滤选择器的过滤规则是通过元素的属性来获取对应的元素 .[attribute] 使用方法: $("div[id]") ; 返回值 集合元素 说明:匹配包括给定属性的元素.样 ...
- SharePoint 2013 引发类型为“System.ArgumentException”的异常。 參数名: encodedValue
SharePoint 2013 引发类型为"System.ArgumentException"的异常. 參数名: encodedValue 具体错误信息 说明: 运行当前 Web ...
- 第二十六天 蛰伏的Hibernate遇到春日的暖阳 —Spring MVC 集成Hibernate使用(一)
6月7日.晴."纷纷红紫已成尘,布谷声中夏令新. 夹路桑麻行不尽.始知身是太平人. " Hibernate和Spring的香艳相逢,不仅是Bean和Bean之间电光火 ...