[bzoj3036]绿豆蛙的归宿 期望DP
来源:互联网 发布:windows怎么卸载软件 编辑:程序博客网 时间:2024/04/29 07:13
3036: 绿豆蛙的归宿
Time Limit: 2 Sec Memory Limit: 128 MB[Submit][Status][Discuss]
Description
随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿。
给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度。绿豆蛙从起点出发,走向终点。
到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。
现在绿豆蛙想知道,从起点走到终点的所经过的路径总长度期望是多少?
Input
第一行: 两个整数 N M,代表图中有N个点、M条边
第二行到第 1+M 行: 每行3个整数 a b c,代表从a到b有一条长度为c的有向边
Output
从起点到终点路径总长度的期望值,四舍五入保留两位小数。
Sample Input
4 4
1 2 1
1 3 2
2 3 3
3 4 4
1 2 1
1 3 2
2 3 3
3 4 4
Sample Output
7.00
HINT
对于100%的数据 N<=100000,M<=2*N
Source
最简单的概率DP
#include<iostream>#include<cstdio>using namespace std;const int N = 100000 + 5;int last[N],n,m,cnt,out[N];struct Edge{int to,v,next;}e[N*2];double f[N]; bool vis[N];void insert( int u, int v, int w ){e[++cnt].to = v; e[cnt].next = last[u]; last[u] = cnt; e[cnt].v = w;}void dfs( int x ){if( !vis[x] ) vis[x] = 1; else return;for( int i = last[x]; i; i = e[i].next ){dfs(e[i].to);f[x] += f[e[i].to] + e[i].v;}if( out[x] ) f[x] /= out[x];}int main(){scanf("%d%d", &n, &m);for( int i = 1,a,b,c; i <= m; i++ ){scanf("%d%d%d", &a, &b, &c);insert( a, b, c ); out[a]++;}dfs(1);printf("%.2lf", f[1]);return 0;}
阅读全文
0 0
- [bzoj3036]绿豆蛙的归宿 期望DP
- 【bzoj3036】绿豆蛙的归宿 期望dp
- [BZOJ3036]绿豆蛙的归宿 ——期望DP
- [BZOJ3036]绿豆蛙的归宿(拓扑序+期望dp)
- BZOJ3036-绿豆蛙的归宿-概率与期望-DP
- BZOJ3036[绿豆蛙的归宿] 期望概率DP
- [BZOJ3036][codevs2488]绿豆蛙的归宿(期望dp)
- 【BZOJ3036】绿豆蛙的归宿 概率DP
- 【bzoj3036】绿豆蛙的归宿
- bzoj3036 绿豆蛙的归宿
- bzoj3036 绿豆蛙的归宿
- BZOJ3036 绿豆蛙的归宿
- 【bzoj3036】绿豆蛙的归宿
- BZOJ3036 绿豆蛙的归宿
- bzoj 3036: 绿豆蛙的归宿 期望dp
- 【BZOJ 3036】绿豆蛙的归宿 期望dp
- [BZOJ 3036]绿豆蛙的归宿:期望DP
- 【BZOJ】3036 绿豆蛙的归宿 期望DP
- 搬家了搬家了!
- PE文件结构详解(一)基本概念
- springIOC学习笔记
- webpack3学习3--管理输出
- linux下为php添加curl扩展的方法
- [bzoj3036]绿豆蛙的归宿 期望DP
- [Java]JAR的生成
- 希特勒名言65句
- “IQ波形文件生成器”C++实现和Python实现的对比
- ArcMap拓扑应用
- CentOS7-源码安装redis单节点
- hadoop简介
- SDKD 2017 Summer Single Training #01(训练赛1)
- BZOJ1799 [self 同类分布]