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

Sample Output

7.00

HINT

对于100%的数据  N<=100000,M<=2*N

题解:

   概率dp……还是写得少啊。

   dp[i]表示搜索到第i个点的答案。先预处理出来每个点的出度。然后像跑图一样跑一边dfs就行了。一个点的答案为子树的答案+这个点与儿子之间的边权贡献出来的答案。

 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int MAXN = 100001;
const int MAXM = 200001;
struct xx
{int from, to, w, nxt;
}e[MAXM];
int n, m, cnt, head[MAXM];
bool visit[MAXN];
double dp[MAXN];
int chu[MAXN];
inline void add(int x, int y, int z)
{cnt++;e[cnt].from = x;e[cnt].to = y;e[cnt].w = z;e[cnt].nxt = head[x];head[x] = cnt;chu[x]++;
}
void dfs(int x)
{int i;visit[x] = true;for (i = head[x]; i; i = e[i].nxt){if (visit[e[i].to] == false) dfs(e[i].to);dp[x] += dp[e[i].to] + e[i].w;}if (chu[x] != 0) dp[x] = dp[x] / (chu[x]*1.0)*1.0;
}
int main(int argc, char *argv[])
{int i, j, x, y,z;scanf("%d%d", &n, &m);for (i = 1; i <= m; i++){scanf("%d%d%d", &x, &y, &z);add(x, y, z);}dfs(1);printf("%.2f\n", dp[1]);return 0;
}

转载于:https://www.cnblogs.com/BeyondW/p/5947000.html

【BZOJ】3036: 绿豆蛙的归宿相关推荐

  1. bzoj 3036: 绿豆蛙的归宿(Dp)

    3036: 绿豆蛙的归宿 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 724  Solved: 511 [Submit][Status][Discu ...

  2. BZOJ 3036 绿豆蛙的归宿

    Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达 ...

  3. BZOJ 3036 绿豆蛙的归宿 期望DP

    Time Limit: 2 Sec Memory Limit: 128 MB Submit: 610 Solved: 431 Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它 ...

  4. bzoj 3036: 绿豆蛙的归宿

    Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达 ...

  5. 【BZOJ 3036】 3036: 绿豆蛙的归宿 (概率DP)

    3036: 绿豆蛙的归宿 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 491  Solved: 354 Description 随着新版百度空间的下 ...

  6. 3036: 绿豆蛙的归宿

    题目链接 题目大意:带权DAG,从1走到n,若到达点x后有k条出边,走这k条边的概率均为1/k,求1-n期望路径长度 题解:f[i]表示i−n的期望路径长度f[i]表示i-n的期望路径长度 f[i]= ...

  7. Acwing 217. 绿豆蛙的归宿

    Acwing 217. 绿豆蛙的归宿 题意: 给出一个有向无环的连通图,起点为 1,终点为 N,每条边都有一个长度. 数据保证从起点出发能够到达图中所有的点,图中所有的点也都能够到达终点. 绿豆蛙从起 ...

  8. 【BZOJ3036】绿豆蛙的归宿 拓补排序+概率

    [BZOJ3036]绿豆蛙的归宿 Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度. ...

  9. [cogs1065]绿豆蛙的归宿

    1065. [Nescafe19] 绿豆蛙的归宿 [题目描述] 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达每一个顶点时,如果有K条离开该点的道路 ...

最新文章

  1. 深度学习 英文 训练阶段_半监督深度学习训练和实现小Tricks
  2. 学计算机专业的毕业证,对于计算机专业的同学来说,学历真的那么重要吗?
  3. 生成对抗网络GANs理解(附代码)
  4. c语言程序框一点数字就消失,你用C语言编程时,会犯下面的错误吗?
  5. python网络爬虫教程-教你从零开始学会写 Python 爬虫
  6. 原生JS forEach()和map()遍历的区别以及兼容写法
  7. 2018.11.03-dtoj-3130-流浪者(rover)
  8. 干,认识Audio框架还因此发现一个雷
  9. moment 时间戳_【通知】2020 CATTI 考试准考证打印时间
  10. 欢迎加入免费星球,一起交流大数据技术。
  11. mac下编译curl库(处理https的问题)
  12. JZOJ 1236. 邦德I
  13. NSGA-Ⅱ算法C++实现(测试函数为ZDT1)
  14. SpringCloud之Ribbon源码分析(二)
  15. cad统计面积长度插件vlx_cad计算总长度插件下载|
  16. 硬盘柱面损坏怎么办_最靠谱的机械硬盘坏道修复工具一:DiskGenius
  17. 互联网产品设计思路参考
  18. A Survey on Conversational Recommender Systems
  19. AARRR模型:用户激活指标+方法,很实用!
  20. Linux下深度学习常用工具的安装

热门文章

  1. hadoop 基础环境搭建(一)
  2. 商丘网络推广浅析如何分析竞争对手的网站,制定更优秀的优化方案?
  3. 变频电机转矩频率特性曲线_伟创变频器
  4. 远程连接计算机用户名怎样修改,更改服务器远程桌面用户名
  5. mysql分析表增删改统计_MySQL增删改查|附思维导图
  6. c语言力扣l最大矩形,leetcode 84柱状图中最大的矩形,利用单调栈求解l
  7. git清空工作区和暂存区
  8. 乐观锁和悲观锁,可重入锁和不可重入锁(1)
  9. Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)——无非是在传统遍历过程中修改叶子结点加入后继结点信息(传统是stack记录),然后再删除恢复...
  10. padding valid same区别——就是是否补齐0的问题