[BZOJ]2337: [HNOI2011]XOR和路径 期望+高斯消元
来源:互联网 发布:linux登陆ftp服务器 编辑:程序博客网 时间:2024/05/29 16:52
Description
题解:
好题啊!以前都不知道高斯消元还能这样用!看到xor,我们可以想到拆位,这样算出每位为1的期望然后乘上一个权值就是答案了。假设我们现在处理到第j位,为了方便,我们把每条边的权值看做它的第j位,令,我就懒得写了,然后显然
代码:
#include<bits/stdc++.h>using namespace std;#define LL long longconst long double eps=1e-8;const int Maxn=110;int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return x*f;}int n,m,degree[Maxn];struct Edge{int y,next,d;}e[20010];int last[Maxn],len=0;void ins(int x,int y,int d){ int t=++len; e[t].y=y;e[t].d=d;e[t].next=last[x];last[x]=t;}long double a[Maxn][Maxn];void gauss(){ for(int i=1;i<n;i++) { if(abs(a[i][i])<=eps) { for(int j=i+1;j<n;j++) if(abs(a[j][i])>eps) { for(int k=i;k<=n+1;k++)swap(a[j][k],a[i][k]); break; } } for(int j=i+1;j<n;j++) if(abs(a[j][i])>eps) { long double t=a[j][i]/a[i][i]; for(int k=i;k<=n+1;k++)a[j][k]-=t*a[i][k]; } } for(int i=n-1;i;i--) { for(int j=i+1;j<=n;j++) a[i][n+1]-=a[i][j]*a[j][n+1]; a[i][n+1]/=a[i][i]; }}int main(){ n=read();m=read(); for(int i=1;i<=m;i++) { int x=read(),y=read(),d=read(); degree[y]++,ins(x,y,d); if(x!=y)degree[x]++,ins(y,x,d); } long double ans=0.0; for(int j=0;j<31;j++) { for(int p=1;p<=100;p++) for(int q=1;q<=101;q++) a[p][q]=0.0; for(int x=1;x<n;x++) { a[x][x]=(long double)(degree[x]); for(int i=last[x];i;i=e[i].next) { int y=e[i].y,d=((e[i].d>>j)&1); if(d)a[x][y]+=1.0,a[x][n+1]+=1.0; else a[x][y]-=1.0; } } gauss();ans+=a[1][n+1]*(long double)(1<<j); } printf("%.3Lf",ans);}
阅读全文
1 0
- BZOJ 2337 HNOI2011 XOR和路径 期望DP+高斯消元
- BZOJ 2337: [HNOI2011]XOR和路径|期望|高斯消元
- bzoj 2337: [HNOI2011]XOR和路径 期望dp+高斯消元
- [BZOJ]2337: [HNOI2011]XOR和路径 期望+高斯消元
- bzoj 2337: [HNOI2011]XOR和路径 (概率与期望DP+高斯消元)
- [BZOJ 2337][HNOI2011]XOR和路径
- BZOJ 2337: [HNOI2011]XOR和路径
- BZOJ 2337 [HNOI2011] XOR和路径
- 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径
- 【BZOJ 2337】[HNOI2011]XOR和路径 高斯消元+按位异或
- [BZOJ2337][HNOI2011]XOR和路径(概率期望dp+高斯消元)
- [BZOJ2337] [HNOI2011] XOR和路径 期望 + 按位处理 + 高斯消元
- BZOJ 2337|HNOI 2011|XOR和路径|概率期望|高斯消元
- 2337: [HNOI2011]XOR和路径 高斯消元解期望方程 概率与期望DP
- [BZOJ2337][HNOI2011]XOR和路径(高斯消元解期望方程)
- [HNOI2011]XOR和路径
- 【bzoj2337】【HNOI2011】【XOR和路径】【高斯消元】
- BZOJ2337 [HNOI2011]XOR和路径
- 瞄点,路由
- 反作弊工程点滴
- 管理:实务篇序
- 【Java学习3.7.7】三目预算符 结合性 优先级
- 头文件被重复包含有哪些危害?
- [BZOJ]2337: [HNOI2011]XOR和路径 期望+高斯消元
- 学习记录 13-JS DOM操作(17/10/18于成都)
- spark 运行日志
- LINQ体验(13)——LINQ to SQL语句之运算符转换和ADO.NET与LINQ to SQL
- 内部类
- LINQ体验(14)——LINQ to SQL语句之存储过程
- eclipse快捷键大全
- Python(VSCode)无法找到pyodbc模块
- SpringMVC学习系列(11) 之 表单标签