【BZOJ5197】Gambling Guide (最短路,期望)

题面

BZOJ权限题
洛谷

题解

假设我们求出了每个点的期望,那么对于一个点,只有向期望更小的点移动的时候才会更新答案。
即转移是:\(\displaystyle f[u]=\frac{\sum_{v,(u,v)\in E}min(f[u],f[v])+1}{d[u]}\)。
显然有\(f[n]=0\)。
那么从\(n\)开始更新其他的点,因为\(n\)是最小值,类似\(Dijkstra\)跑最短路的过程,它更新出来的值取出最小值,那么这个点不可能再被其他点所更新,即所有未确定的点中的最小值。
(似乎很不清楚啊QwQ)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
#define MAX 300300
#define pi pair<double,int>
#define mp make_pair
inline int read()
{int x=0;bool t=false;char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=true,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return t?-x:x;
}
struct Line{int v,next;}e[MAX<<1];
int h[MAX],cnt=1,dg[MAX];
inline void Add(int u,int v){e[cnt]=(Line){v,h[u]};h[u]=cnt++;dg[v]+=1;}
int n,m,d[MAX];
double f[MAX],s[MAX];bool vis[MAX];
priority_queue<pi,vector<pi>,greater<pi> > Q;
int main()
{n=read();m=read();for(int i=1,u,v;i<=m;++i)u=read(),v=read(),Add(u,v),Add(v,u);memset(f,127,sizeof(f));f[n]=0;Q.push(mp(f[n],n));while(!Q.empty()){int u=Q.top().second;Q.pop();if(vis[u])continue;vis[u]=true;for(int i=h[u];i;i=e[i].next){int v=e[i].v;if(vis[v])continue;d[v]+=1;s[v]+=f[u];f[v]=(s[v]+dg[v])/d[v];Q.push(mp(f[v],v));}}printf("%.10lf\n",f[1]);return 0;
}

转载于:https://www.cnblogs.com/cjyyb/p/10513661.html

【BZOJ5197】Gambling Guide (最短路,期望)相关推荐

  1. BZOJ5197:[CERC2017]Gambling Guide(最短路,期望DP)

    Description 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易 ...

  2. bzoj5197 Gambling Guide

    题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...

  3. luogu P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现) Weblin ...

  4. [BZOJ5197] [CERC2017]Gambling Guide

    [BZOJ5197] [CERC2017]Gambling Guide 题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5197 Solut ...

  5. 【bzoj5197】[CERC2017]Gambling Guide 期望dp+堆优化Dijkstra

    题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...

  6. CERC2017 Gambling Guide,最短路变形,期望dp

    题目链接 题面链接 题意 给定一个无向图,你需要从111点出发到达n" role="presentation" style="position: relativ ...

  7. Luogu4745/Gym101620G CERC2017 Gambling Guide 期望、DP、最短路

    传送门--Luogu 传送门--Vjudge 设\(f_x\)为从\(x\)走到\(N\)的期望步数 如果没有可以不动的限制,就是隔壁HNOI2013 游走 如果有可以不动的限制,那么\(f_x = ...

  8. bzoj5197:[CERC2017]Gambling Guide

    传送门 好像概率期望也写过一些题了,但是没啥用,还是不会套路,看了题解才会写 首先设\(f[x]\)为\(x\)到\(n\)的期望最少步数,\(deg_x\)表示\(x\)的度数 不考虑不动,显然\( ...

  9. CERC2017 Gambling Guide

    一个在邻国的铁路系统是由nn个城市(编号从11到nn),和mm条连接两个不同城市的双向铁路组成的.铁路票只能在安装在每个城市的自动售票机购买.不幸的是,黑客们已经篡改了这些售票机,现在它们有下面的规则 ...

最新文章

  1. 中国人工智能计划,我来说几句
  2. python基础之异常处理
  3. CentOS7.6 Open vSwitch安装
  4. 快逸报表参数查询前报表不显示
  5. python 拟牛顿法 求非线性方程_C语言实现迭代法求非线性方程的根
  6. 【Android】1.1 开发环境安装和配置
  7. 2011/05/19
  8. 机器学习、深度学习常见面试题300道
  9. 《剑指offer》Java版全系列题解(2021版,持续更新!)
  10. 计算机网络自顶向下WireShark实验:ICMP
  11. MUI框架学习——了解MUI
  12. [阅读笔记] 联邦学习攻防综述 An Overview of Federated Deep Learning Privacy Attacks and Defensive Strategies
  13. 音质蓝牙耳机哪款好用?2023公认音质好的四款蓝牙耳机推荐
  14. 51单片机用c语言倒计时程序,51单片机实现100以内倒计时,求大佬指点。
  15. TpyeScript基础
  16. python 读取图片转换为一维向量_对Python中一维向量和一维向量转置相乘的方法详解...
  17. 状态模式——水之三态
  18. 什么是大数据分析?定义、优点和类型
  19. interfacee0计算机网络,计算机网络浅析之十—交换机配置全接触
  20. cnpm 安装文件找不到_新手美工求职被拒,找不到工作也许是以下原因

热门文章

  1. 新加坡金融科技节 | 蚂蚁金服CTO程立:面向全球开放,与合作伙伴共赢 1
  2. vue中使用Lodop调用打印机打印条形码
  3. 软件测试面试总被拒怎么办?表姐把压箱底的面试秘籍交给了我,现在已经在上班了。
  4. android跌倒检测,基于Android手机的老人跌倒检测方法的研究与设计
  5. android版本玩游戏卡怎么办,阴阳师安卓卡顿不流畅怎么办 玩阴阳师卡顿怎么解决...
  6. 特征筛选:重要性评估
  7. C++:实现量化默认概率曲线测试实例
  8. 散热之散热风扇种类介绍
  9. 读取目录下的图片写入剪切板然后发送到qq窗口
  10. ubuntu linux通过rclone 挂载onedrive 到本地磁盘