#数学期望,高斯消元#洛谷 3232 [HNOI2013]游走
分析
如果计算出边的期望经过次数那就可以算出来答案
首先转换成点的期望经过次数,设\(dp[x]\)表示点\(x\)的期望经过次数
那么\(dp[x]=\sum_{y\in son}\frac{dp[y]}{deg[x]}+(x==1)(1\leq x<n)\)
可以用高斯消元解决,那么边的期望经过次数就是\(\frac{dp[u]}{deg[u]}+\frac{dp[v]}{deg[v]}\)
将其排个序就可以确定边的编号了
代码
#include <cstdio>
#include <cctype>
#include <cmath>
#include <algorithm>
#define rr register
using namespace std;
const int N=511;
struct node{int y,next;}e[N*N];
double a[N][N],f[N*N],ans;
int n,m,k,deg[N],ls[N];
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void add(int x,int y){
e[++k]=(node){y,ls[x]},ls[x]=k,
e[++k]=(node){x,ls[y]},ls[y]=k;
}
inline void Gauss(int n){
for (rr int i=1;i<=n;++i){
rr int p=i;
for (rr int j=i+1;j<=n;++j)
if (fabs(a[j][i])>fabs(a[p][i])) p=j;
if (p!=i) for (rr int j=1;j<=n+1;++j) swap(a[i][j],a[p][j]);
for (rr int j=1;j<=n;++j)
if (i!=j){
rr double elim=a[j][i]/a[i][i];
for (rr int k=i;k<=n+1;++k)
a[j][k]-=elim*a[i][k];
}
}
}
signed main(){
n=iut(),m=iut(),k=1;
for (rr int i=1,x,y;i<=m;++i)
++deg[x=iut()],++deg[y=iut()],add(x,y);
for (rr int i=1;i<n;++i){
a[i][i]=1.0;
for (rr int j=ls[i];j;j=e[j].next)
if (e[j].y!=n) a[i][e[j].y]=-1.0/deg[e[j].y];
}
a[1][n]=1,Gauss(n-1);
for (rr int i=1;i<n;++i)
for (rr int j=ls[i];j;j=e[j].next)
if (e[j].y!=n) f[j>>1]+=a[e[j].y][n]/a[e[j].y][e[j].y]*(1.0/deg[e[j].y]);
else f[j>>1]+=a[i][n]/a[i][i]*(1.0/deg[i]);
sort(f+1,f+1+m);
for (rr int i=1;i<=m;++i) ans+=((m-i+1)*1.0)*f[i];
return !printf("%.3f\n",ans);
}
#数学期望,高斯消元#洛谷 3232 [HNOI2013]游走的更多相关文章
- 洛谷P3232 [HNOI2013]游走(高斯消元+期望)
传送门 所以说我讨厌数学……期望不会高斯消元也不会……好不容易抄好了高斯消元板子被精度卡成琪露诺了…… 首先,我们先算出走每一条边的期望次数,那么为了最小化期望,就让大的期望次数乘上小编号 边的期望次 ...
- UVa 10828 Back to Kernighan-Ritchie (数学期望 + 高斯消元)
题意:给定一个 n 个结点的有向图,然后从 1 结点出发,从每个结点向每个后继结点的概率是相同的,当走到一个没有后继结点后,那么程序终止,然后问你经过每个结点的期望是次数是多少. 析:假设 i 结点的 ...
- P4321-随机漫游【状压dp,数学期望,高斯消元】
正题 题目链接:https://www.luogu.com.cn/problem/P4321 题目大意 给出\(n\)个点\(m\)条边的一张无向图,\(q\)次询问. 每次询问给出一个点集和一个起点 ...
- 洛谷P3232[HNOI2013]游走
有一个无向简单连通图,顶点从 \(1\) 编号到 \(n\),边从 \(1\) 编号到 \(m\) 小Z在该图上进行随机游走,初始时小Z在\(1\)号顶点,每一步小Z以相等的概率随机选 择当前顶点的某 ...
- [bzoj3143] [洛谷P3232] [HNOI2013] 游走
Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...
- 洛谷 P3232 [HNOI2013]游走
链接: P3232 题意: 和上次考试 T4 的简化且无修改一样,经典图上高斯消元求期望. 分析: 要求出每个点的期望出发次数 \(f_i\),每个点度数为 \(d_i\),有 \[f1=\sum\d ...
- BZOJ 3143 游走 | 数学期望 高斯消元
啊 我永远喜欢期望题 BZOJ 3143 游走 题意 有一个n个点m条边的无向联通图,每条边按1~m编号,从1号点出发,每次随机选择与当前点相连的一条边,走到这条边的另一个端点,一旦走到n号节点就停下 ...
- 【BZOJ】3143: [Hnoi2013]游走 期望+高斯消元
[题意]给定n个点m条边的无向连通图,每条路径的代价是其编号大小,每个点等概率往周围走,要求给所有边编号,使得从1到n的期望总分最小(求该总分).n<=500. [算法]期望+高斯消元 [题解] ...
- 【BZOJ】2337: [HNOI2011]XOR和路径 期望+高斯消元
[题意]给定n个点m条边的带边权无向连通图(有重边和自环),在每个点随机向周围走一步,求1到n的期望路径异或值.n<=100,wi<=10^9. [算法]期望+高斯消元 [题解]首先异或不 ...
- [BZOJ3143][HNOI2013]游走(期望+高斯消元)
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3576 Solved: 1608[Submit][Status ...
随机推荐
- 第120篇: DOM编程(常用操作、动态脚本、样式及动态表格)
好家伙,我回来了, 本篇为<JS高级程序设计>第十四章"DOM编程"学习笔记 1.DOM编程 我们知道DOM是HTML文档的编程接口, 我们可以通过HTML代码实现 ...
- 51从零开始用Rust编写nginx,江湖救急,TLS证书快过期了
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 负载均衡, 静态文件服务器,websocket代理,四层TCP/UDP转发,内网穿透等,会将实 ...
- 【Azure 应用服务】App Service中抓取 Web Job 的 DUMP 办法
问题描述 使用Azure App Service,也可以部署一个Java程序作为Web Job运行.运行一个 .Jar 文件只需要以下4步: 1)把Java应用打包成一个 .jar 文件 2)创建一个 ...
- 【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
问题描述 在Azure Function中创建一个PowerShell的函数后,其中使用了Get-AzMaintenanceUpdate,New-AzApplyUpdate 等指令,但是在执行时错误. ...
- C#---串口调试助手
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 usin ...
- vmware虚拟机出现此电脑无法运行win11,虚拟机中安装win11系统教程
一.点击新建虚拟机 二.选择自定义安装 三.默认 四.选择win11镜像 五.选择windows 六.命名 七.勾选安全引导 八.两个处理器即可 九.最低4G内存,接下来一直默认点下一步即可 十.创建 ...
- 科技大厂、手机厂商、企服领域齐发力,手机智能体成AI Agent新趋势
AI Agent涌向移动终端,手机智能体势不可挡 还没搞清楚什么是AI Agent,手机Agent就已经横空出世 AIGC为何涌向移动端?背后有哪些逻辑?什么是手机智能体?一文看明白 科技大厂.手机厂 ...
- CPNtools协议建模安全分析---实例(三)
对于复杂的系统的建模或者协议的建模,各种颜色集的定义以及变量的声明很重要,要区分明确,对于函数行业进程的定义更加复杂.CPN对协议的描述只适合简单逻辑性的协议分析,如果协议包括复杂的算法,那么CPN就 ...
- k8s标签的增删改查和选择器
在 Kubernetes(K8s)中,标签(Label)是与资源对象相关联的键值对,用于实现多维度的资源分组管理功能.下面是关于 Kubernetes 标签的增删改查操作的简要说明: 查询标签 (查) ...
- 光感红外接近传感器AP3426调试总结
一 概念 AP3426是一个高度集成了红外,光感和接近角的传感器.该传感器凭借着高灵敏度广泛应用在可穿戴领域.笔者在一个产品上用了这个传感器.花了一些时间来调试和熟悉这个传感器,这里就做一个总结吧. ...