【数学期望】【高斯消元】bzoj3143 [Hnoi2013]游走
2017-03-04 15:29
453 查看
和hdu5955很像。也是注意从结点1出发,其概率要在方程左侧+1。
边的期望和点的期望之间转换巧妙
http://blog.csdn.net/thy_asdf/article/details/47335849
边的期望和点的期望之间转换巧妙
http://blog.csdn.net/thy_asdf/article/details/47335849
#include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; #define N 511 int nn,mm; double B [N+1],A [N+1],x ,b ,pl[N+1] ; void guass_jordan() { int n=nn-1; memcpy(B,A,sizeof(A)); for(int i=1;i<=n;++i) B[i][n+1]=b[i]; for(int i=1;i<=n;++i)//枚举:正在消除第i个未知数,之后第i个方程废掉,矩阵行、列-1 { int pivot=i; for(int j=i+1;j<=n;++j)//枚举j:把正在处理的未知数的系数的绝对值最大的方程换到第i行 if(fabs(B[j][i])>fabs(B[pivot][i])) pivot=j; swap(B[i],B[pivot]); //if(fabs(B[i][i])<EPS) //若所有(最大)的该未知数系数为0,说明少一个未知数,有无穷多解 for(int j=i+1;j<=n+1;++j) B[i][j]/=B[i][i]; for(int j=1;j<=n;++j) if(i!=j)//枚举所有的方程,从第j个方程中消去第i个未知数 for(int k=i+1;k<=n+1;++k)//依次把第j个方程中的第k个未知数减去应减的数值 B[j][k]-=B[j][i]*B[i][k]; } for(int i=1;i<=n;++i) x[i]=B[i][n+1]; } struct Edge { int u,v; double x; }es[250010]; bool cmp(const Edge &a,const Edge &b) { return a.x>b.x; } int du ; bool map ; int main() { // freopen("bzoj3143.in","r",stdin); int X,Y; scanf("%d%d",&nn,&mm); for(int i=1;i<=mm;++i) { scanf("%d%d",&es[i].u,&es[i].v); ++du[es[i].u]; ++du[es[i].v]; map[es[i].u][es[i].v]=map[es[i].v][es[i].u]=1; } b[1]=-1.0; for(int i=1;i<nn;++i){ for(int j=1;j<nn;++j) if(map[j][i]) A[i][j]=1.0/(double)du[j]; A[i][i]=-1.0; } guass_jordan(); for(int i=1;i<=mm;++i) es[i].x=x[es[i].u]/(double)du[es[i].u]+x[es[i].v]/(double)du[es[i].v]; sort(es+1,es+mm+1,cmp); double ans=0; for(int i=1;i<=mm;++i) ans+=((double)i*es[i].x); printf("%.3lf\n",ans); return 0; }
相关文章推荐
- [BZOJ3143][Hnoi2013]游走(概率期望+高斯消元)
- [BZOJ3143][Hnoi2013][概率与期望][高斯消元]游走
- [期望DP+高斯消元] BZOJ3143: [Hnoi2013]游走
- BZOJ 3143: [Hnoi2013]游走 高斯消元 期望
- bzoj 3143: [Hnoi2013]游走 (概率与期望+高斯消元)
- 【bzoj3143】[Hnoi2013]游走 期望dp+高斯消元
- BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元
- BZOJ 3143 HNOI2013 游走 期望DP+高斯消元
- 【BZOJ3143】【Hnoi2013】 游走 期望DP 高斯消元
- 【bzoj3143】[Hnoi2013]游走 高斯消元+期望方程
- bzoj3143 [Hnoi2013]游走 (期望概率DP + 高斯消元)
- BZOJ 3143 HNOI2013 游走 高斯消元 期望
- 【BZOJ3143】[Hnoi2013]游走【高斯消元】【期望DP】【贪心】
- 【BZOJ】3143: [Hnoi2013]游走 期望+高斯消元
- 【BZOJ 3143】【Hnoi2013】游走 期望+高斯消元
- 【BZOJ3143】[Hnoi2013]游走 期望DP+高斯消元
- bzoj 3143 [Hnoi2013]游走(贪心,高斯消元,期望方程)
- bzoj 3143: [Hnoi2013]游走 期望dp+高斯消元
- [BZOJ]3143: [Hnoi2013]游走 期望+高斯消元
- 【BZOJ 3143】 [Hnoi2013]游走 期望DP|高斯消元|贪心