【BZOJ5197】Gambling Guide (最短路,期望)
【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 (最短路,期望)相关推荐
- BZOJ5197:[CERC2017]Gambling Guide(最短路,期望DP)
Description 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易 ...
- bzoj5197 Gambling Guide
题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...
- luogu P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P4745 [CERC2017]Gambling Guide(期望DP + 最短路实现) Weblin ...
- [BZOJ5197] [CERC2017]Gambling Guide
[BZOJ5197] [CERC2017]Gambling Guide 题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5197 Solut ...
- 【bzoj5197】[CERC2017]Gambling Guide 期望dp+堆优化Dijkstra
题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...
- CERC2017 Gambling Guide,最短路变形,期望dp
题目链接 题面链接 题意 给定一个无向图,你需要从111点出发到达n" role="presentation" style="position: relativ ...
- Luogu4745/Gym101620G CERC2017 Gambling Guide 期望、DP、最短路
传送门--Luogu 传送门--Vjudge 设\(f_x\)为从\(x\)走到\(N\)的期望步数 如果没有可以不动的限制,就是隔壁HNOI2013 游走 如果有可以不动的限制,那么\(f_x = ...
- bzoj5197:[CERC2017]Gambling Guide
传送门 好像概率期望也写过一些题了,但是没啥用,还是不会套路,看了题解才会写 首先设\(f[x]\)为\(x\)到\(n\)的期望最少步数,\(deg_x\)表示\(x\)的度数 不考虑不动,显然\( ...
- CERC2017 Gambling Guide
一个在邻国的铁路系统是由nn个城市(编号从11到nn),和mm条连接两个不同城市的双向铁路组成的.铁路票只能在安装在每个城市的自动售票机购买.不幸的是,黑客们已经篡改了这些售票机,现在它们有下面的规则 ...
最新文章
- 中国人工智能计划,我来说几句
- python基础之异常处理
- CentOS7.6 Open vSwitch安装
- 快逸报表参数查询前报表不显示
- python 拟牛顿法 求非线性方程_C语言实现迭代法求非线性方程的根
- 【Android】1.1 开发环境安装和配置
- 2011/05/19
- 机器学习、深度学习常见面试题300道
- 《剑指offer》Java版全系列题解(2021版,持续更新!)
- 计算机网络自顶向下WireShark实验:ICMP
- MUI框架学习——了解MUI
- [阅读笔记] 联邦学习攻防综述 An Overview of Federated Deep Learning Privacy Attacks and Defensive Strategies
- 音质蓝牙耳机哪款好用?2023公认音质好的四款蓝牙耳机推荐
- 51单片机用c语言倒计时程序,51单片机实现100以内倒计时,求大佬指点。
- TpyeScript基础
- python 读取图片转换为一维向量_对Python中一维向量和一维向量转置相乘的方法详解...
- 状态模式——水之三态
- 什么是大数据分析?定义、优点和类型
- interfacee0计算机网络,计算机网络浅析之十—交换机配置全接触
- cnpm 安装文件找不到_新手美工求职被拒,找不到工作也许是以下原因
热门文章
- 新加坡金融科技节 | 蚂蚁金服CTO程立:面向全球开放,与合作伙伴共赢 1
- vue中使用Lodop调用打印机打印条形码
- 软件测试面试总被拒怎么办?表姐把压箱底的面试秘籍交给了我,现在已经在上班了。
- android跌倒检测,基于Android手机的老人跌倒检测方法的研究与设计
- android版本玩游戏卡怎么办,阴阳师安卓卡顿不流畅怎么办 玩阴阳师卡顿怎么解决...
- 特征筛选:重要性评估
- C++:实现量化默认概率曲线测试实例
- 散热之散热风扇种类介绍
- 读取目录下的图片写入剪切板然后发送到qq窗口
- ubuntu linux通过rclone 挂载onedrive 到本地磁盘