吐槽

傻了傻了,对着题解改了好长时间最后发现是自己忘了调用高斯消元了。。。

思路

期望题,分配编号,显然编号大的分给贡献次数小的,所以需要知道每个边被经过次数的期望

然后边被经过的次数的期望就是连接的两个点到它的次数的期望求和,点走哪条边次数的期望相等(都是1/度数)

然后就是求每个点的次数的期望,正推,高斯消元

注意因为计算的是次数的期望,所以f1要加上1(开局经过一次)且所有的点都不能从fn转移来(因为到n就结束了,所以消元的时候也不用管fn

代码

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#define int long long
#define double long double
using namespace std;
const double eps=1e-9;
int n,m,u[1010000],v[1010000],fir[1010],nxt[1010000],d[1010],cnt;
double a[510][510],ans=0,Ex[1010000];
struct Edge{
int u,v;
}E[1010000];
void gauss(void){
for(int i=1;i<n;i++){
for(int j=i;j<n;j++){
if(fabs(a[j][i])>eps){
for(int k=1;k<=n;k++)
swap(a[i][k],a[j][k]);
break;
}
}
for(int j=1;j<n;j++){
if(j==i)
continue;
double rate=a[j][i]/a[i][i];
for(int k=i;k<=n;k++)
a[j][k]=a[j][k]-rate*a[i][k];
}
}
for(int i=1;i<n;i++)
a[i][n]=a[i][n]/a[i][i];
return;
}
void addedge(int ui,int vi){
++cnt;
u[cnt]=ui;
v[cnt]=vi;
d[ui]++;
nxt[cnt]=fir[ui];
fir[ui]=cnt;
}
void build(void){
// a[n][n]=1;
a[1][n]=1;
for(int i=1;i<n;i++){
a[i][i]+=1;
// a[i][n+1]+=1;
for(int j=fir[i];j;j=nxt[j]){
if(v[j]!=n)
a[i][v[j]]-=1.0/d[v[j]];
}
}
}
signed main(){
scanf("%lld %lld",&n,&m);
for(int i=1;i<=m;i++){
int a,b;
scanf("%lld %lld",&a,&b);
addedge(a,b);
addedge(b,a);
E[i].u=a;
E[i].v=b;
}
build();
gauss();
for(int i=1;i<=m;i++){
Ex[i]+=a[E[i].u][n]/d[E[i].u];
Ex[i]+=a[E[i].v][n]/d[E[i].v];
}
sort(Ex+1,Ex+m+1);
for(int i=1,j=m;i<=m;i++,j--)
ans=ans+j*Ex[i]*1.0;
printf("%.3Lf\n",ans);
return 0;
}

P3232 [HNOI2013]游走的更多相关文章

  1. P3232 [HNOI2013]游走 解题报告

    P3232 [HNOI2013]游走 题目描述 一个无向连通图,顶点从\(1\)编号到\(N\),边从\(1\)编号到\(M\). 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概 ...

  2. 题解 P3232 [HNOI2013]游走

    洛谷P3232[NOI2013]游走 题目描述 给定一个 n 个点 m 条边的无向连通图,顶点从 1 编号到 n,边从 1 编号到 m. 小 Z 在该图上进行随机游走,初始时小 Z 在 1 号顶点,每 ...

  3. P3232 [HNOI2013]游走——无向连通图&&高斯消元

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

  4. 洛谷P3232[HNOI2013]游走

    有一个无向简单连通图,顶点从 \(1\) 编号到 \(n\),边从 \(1\) 编号到 \(m\) 小Z在该图上进行随机游走,初始时小Z在\(1\)号顶点,每一步小Z以相等的概率随机选 择当前顶点的某 ...

  5. [bzoj3143] [洛谷P3232] [HNOI2013] 游走

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

  6. BZOJ 3143 Luogu P3232 [HNOI2013]游走 (DP、高斯消元)

    题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=3143 (luogu) https://www.luogu.org/pro ...

  7. 洛谷 P3232 [HNOI2013]游走

    链接: P3232 题意: 和上次考试 T4 的简化且无修改一样,经典图上高斯消元求期望. 分析: 要求出每个点的期望出发次数 \(f_i\),每个点度数为 \(d_i\),有 \[f1=\sum\d ...

  8. 洛谷P3232 [HNOI2013]游走(高斯消元+期望)

    传送门 所以说我讨厌数学……期望不会高斯消元也不会……好不容易抄好了高斯消元板子被精度卡成琪露诺了…… 首先,我们先算出走每一条边的期望次数,那么为了最小化期望,就让大的期望次数乘上小编号 边的期望次 ...

  9. bzoj 3143: [Hnoi2013]游走 高斯消元

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

随机推荐

  1. 超简单系列:ubuntu 13.04 安装 apache2.2+mod_wsgi+Django

    1,Ubuntu更新系统 sudo apt-get update sudo apt-get upgrade 2,安装apache,mod_wsgi,Django sudo apt-get instal ...

  2. 擠出線寬(Extrusion width),要怎麼設定?

    擠出線寬(Extrusion width),要怎麼設定? Slic3r的作者,把這邊的%設定,跟"層高"做連結.我個人認為擠出線寬,要以噴頭孔徑當做設定參考才好.層高應該只要設定成 ...

  3. ubuntu之redis集群配置

    redis3版本以上支持集群 需要ruby的支持 root@iZ2zejfbthvbzs5lxf37vjZ:/usr/local/src/redis-3.2.9/src# apt-get instal ...

  4. codefroces 266

    D题说的是 你选定一个区间如[l r] 将这个区间内的每个数都加上1,然后求将这整个整个序列都变成h的方案数有多少种 没有一个位置会有超过1次方[  或者放 ] 考虑当前位置放的是什么 有5种 - 不 ...

  5. sitecore系列教程之改进Sitecore编辑体验的5个步骤

    Sitecore完全关注客户体验,在适当的时间为合适的人提供合适的体验.虽然没有人会不同意客户体验是王道,但我们仍然需要记住每天使用Sitecore的人们为客户带来惊人体验的体验. 我看到无数客户通过 ...

  6. Qt信号之自定义数据类型

    [1]为什么需要自定义数据类型? 内置类型毕竟很有局限性,否则为什么还需要类呢.总之,有时候,我们多么希望信号能发送自定义数据类型. 幸哉~ Qt是支持自定义信号,且自定义信号可以发送自定义数据类型的 ...

  7. SLAM学习笔记

    ORB_SLAM2源码: 获得旋转矩阵,来自这里:http://www.cnblogs.com/shang-slam/p/6406584.html 关于Covisibility图来自:http://b ...

  8. Jersey入门——注解的使用

    本文主要解释Jersey中各种注解的使用 package com.coshaho.learn.jersey; import java.net.URI; import javax.ws.rs.Consu ...

  9. 20165215 2017-2018-2 《Java程序设计》第5周学习总结

    20165215 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 chapter7 Java支持在一个类中声明另外一个类,这样的类称作内部类,而包含内部类的类 ...

  10. 那些年 Qzone

    那些年转在Qzone里的: 不喊痛,不一定没感觉.不要求,不一定没期待.不落泪,不一定没伤痕.不说话,不一定没心声.沉默,不代表自己没话说.离开,不代表自己很潇洒.快乐,不代表自己没伤心.幸福,不代表 ...