思路:

先算一下每条边经过次数的期望 转化为每个点经过次数的期望

边的期望=端点的期望/度数

统计一下度数 然后高斯消元

贪心附边权…….

//By SiriusRen
#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define eps 1e-10
int n,m,d[250050];double a[505][505],b[250050],ans;
struct Point{int x,y;}e[250050];
void Gauss(){
int i,j,k;double t;
for(i=1;i<=n;i++){
for(j=i;j<=n;j++)if(fabs(a[j][i])>eps)break;
if(j>n)continue;if(j!=i)swap(a[i],a[j]);
for(j=i+1;j<=n;j++)if(fabs(a[j][i]>eps)){
t=a[j][i]/a[i][i];
for(k=i;k<=n+1;k++)a[j][k]-=t*a[i][k];
}
}
for(int i=n;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(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
scanf("%d%d",&e[i].x,&e[i].y),
d[e[i].x]++,d[e[i].y]++;
for(int i=1;i<=m;i++)
a[e[i].x][e[i].y]+=1.0/d[e[i].y],
a[e[i].y][e[i].x]+=1.0/d[e[i].x];
for(int i=1;i<=n;i++)a[n][i]=0;
for(int i=1;i<=n;i++)a[i][i]=-1;
a[1][n+1]=-1;Gauss();
for(int i=1;i<=m;i++)b[i]=a[e[i].x][n+1]/d[e[i].x]+a[e[i].y][n+1]/d[e[i].y];
sort(b+1,b+1+m);
for(int i=1;i<=m;i++)ans+=b[i]*(m-i+1);
printf("%.3lf\n",ans);
}

最新文章

  1. golang笔记——string
  2. Android实现自定义带文字和图片的Button
  3. Intellij Idea 14 使用jetty-maven-plugin配置运行web工程
  4. resin4 发布war包
  5. Egret Wing3 FTP使用方法
  6. Firefox 23中的新特性(新陷阱)
  7. robotframework笔记12
  8. js部分---数组及练习题;
  9. 高效使用STL
  10. Helpers\SimpleCurl
  11. OCI的结果输出
  12. iOS Runtime 实践(1)
  13. magento后台登陆404、Front controller reached 100 router match iterations的解决方案
  14. yii2.0 控制器方法 视图表单 Form表单处理
  15. C#工作笔记
  16. SharePoint Online 使用 adal js 获取access token
  17. centos7.5下安装teamview
  18. Windows系列之(一):Windows10 上运行Ubuntu Bash
  19. Unity3D笔记 GUI 三、实现选项卡二窗口
  20. muduo 网络库学习之路(一)

热门文章

  1. 对象不支持“abigimage”属性或方法
  2. OpenGL ES 3.0 Graphics Pipeline
  3. m_Orchestrate learning system---二十、如何写代码不容易犯错
  4. zzulioj--1712--神秘的数列(水题)
  5. Win10使用VMware虚拟机安装ubuntu
  6. POJ 3693 后缀数组+RMQ
  7. vmware workstation pro 14 虚拟机无法开启、黑屏的解决方案汇总
  8. win10关闭更新
  9. 总结Ajax的一些细节
  10. GET,POST请求