题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3143

学到了无向图中点被经过的期望次数和边被经过的期望次数。

一个点被经过的期望次数  就是  与它相连的点被经过的期望次数/那个点的度数  的求和。

https://www.cnblogs.com/owenyu/p/6724721.html这个博客说的很好。

  该博客让我受到的启发就是一个点被经过的期望次数是依赖于与它相连的点的,可是要算它的时候相连点还没算出来,算相连点又要用到它的数据,令人头痛。

    而如果是有向图中,就可以以拓扑序为计算顺序了。

    而再想想无向图中计算的形式,不就很适合列方程吗!还有高斯消元这个好方法去解方程!

列式子可知移项后f [ i ] [ i ]的系数一定是-1。相连点的系数就是1/其度数。

需要注意的是自己一开始就在1点,不需要从别的点走过来就自带1次;

而从n点不能走到其他点!

自己写高斯消元总是犯的错误:第 i 行把第 i 个未知数的系数调成1时   要么倒序,要么另存!

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,M=;
int n,m,du[N],u[M],v[M];
double a[N],f[N][N],s[M],ans;
void init()
{
for(int i=;i<n;i++)f[i][i]=-;
f[][n+]=-;
// a[n]=1; //一条边不能从n点走回来!所以算边的时候n点应视为0!
for(int i=;i<=m;i++)
f[u[i]][v[i]]=1.0/du[v[i]],
f[v[i]][u[i]]=1.0/du[u[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);
for(int i=;i<=m;i++)
{
scanf("%d%d",&u[i],&v[i]);
du[u[i]]++;du[v[i]]++;
}
init();gauss();
// for(int i=1;i<=n;i++)
// printf("[%.3lf]",a[i]);printf("\n");
for(int i=;i<=m;i++)
s[i]=a[u[i]]/du[u[i]]+a[v[i]]/du[v[i]];
sort(s+,s+m+);
// for(int i=1;i<=m;i++)
// printf("(%.3lf)",s[i]);printf("\n");
for(int i=,j=m;i<=m;i++,j--)
ans+=s[i]*j;
printf("%.3lf",ans);
return ;
}

bzoj3143游走的更多相关文章

  1. 【Hnoi2013】Bzoj3143 游走

    Position: http://www.lydsy.com/JudgeOnline/problem.php?id=3143 List Bzoj3143 Hnoi2013 游走 List Descri ...

  2. bzoj3143 游走

    Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...

  3. [HNOI2013][BZOJ3143] 游走 - 高斯消元

    题目描述 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边 ...

  4. bzoj3143 游走 期望dp+高斯消元

    题目传送门 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得 ...

  5. bzoj3143游走——期望+高斯消元

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3143 只需算出每条边被经过的概率,将概率从小到大排序,从大到小编号,就可得到最小期望: 每条 ...

  6. 【BZOJ3143】游走(高斯消元,数学期望)

    [BZOJ3143]游走(高斯消元,数学期望) 题面 BZOJ 题解 首先,概率不会直接算... 所以来一个逼近法算概率 这样就可以求出每一条边的概率 随着走的步数的增多,答案越接近 (我卡到\(50 ...

  7. 【BZOJ3143】[Hnoi2013]游走 期望DP+高斯消元

    [BZOJ3143][Hnoi2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 ...

  8. 【BZOJ3143】【HNOI2013】游走 && 【BZOJ3270】博物馆 【高斯消元+概率期望】

    刚学完 高斯消元,我们来做几道题吧! T1:[BZOJ3143][HNOI2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小 ...

  9. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

随机推荐

  1. pyDay13

    内容来自廖雪峰的官方网站. 1.把list.dict.str等Iterable变成Iterator可以使用iter()函数 >>> L = iter([1, 2, 3, 4, 5, ...

  2. Python3基础 print 自带换行

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. 嵌入式Linux应用程序开发环境搭建记录

    2016年2月 参考资料: OK210软件手册(Linux版).pdf Ubuntu下Qt4.7.1编译环境配置说明.pdf 我阅读了以下内容: OK210软件手册(Linux版).pdf 第七章 O ...

  4. POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)

    http://poj.org/problem?id=2262 题意: 哥德巴赫猜想,把一个数用两个奇素数表示出来. 思路:先用Eratosthenes筛法打个素数表,之后枚举即可. #include& ...

  5. UVa 11889 最小公倍数

    https://vjudge.net/problem/UVA-11889 题意: 输入两个整数A和C,求最小的整数B使得lcm(A,B)=C. 思路: 首先C是A的公倍数,如果C%A不为0肯定是无解的 ...

  6. 广播地址设为自己的ip地址,子网掩码设为255.255.255.255 是什么意思

    最近看<构建高性能web站点>(老版)第12章讲LVS-DR的配置,有一段针对Real Server的配置不明所以: ifconfig lo:0 125.12.12.77 broadcas ...

  7. a标签 在新页面打开

    <a href="https://www.baidu.com/" target="_blank">下载</a>

  8. Qt532_QWebView做成DLL供VC/Delphi使用_Bug

    Qt5.3.2 vs2010 OpenGL ,VC6.0,Delphi7 1.自己继承 类QWebView,制作成DLL 供 VC6/Delphi7 使用 2.测试下来,DLL供VC6使用: 加载&q ...

  9. iOS线程之——NSCondition

    多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美.这篇文章主要从线程创建与启动.线程的同步与锁.线程的交互.线 ...

  10. SSM(Spring+SpringMVC+Mybatis)+Mysql 框架整合搭建流程以及其间注意事项

    复习SSM框架,太久没用自己手动撘一个,发现自己还是有很多地方忘记了和没注意的事项... 首先,直接给出总流程: 零.引jar包 1.引包(或者写maven.pom) 一.数据库部分 设计数据库各表结 ...