【BZOJ】3036: 绿豆蛙的归宿
Description
随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿。
给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度。绿豆蛙从起点出发,走向终点。
到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。
现在绿豆蛙想知道,从起点走到终点的所经过的路径总长度期望是多少?
Input
第一行: 两个整数 N M,代表图中有N个点、M条边
第二行到第 1+M 行: 每行3个整数 a b c,代表从a到b有一条长度为c的有向边
Output
从起点到终点路径总长度的期望值,四舍五入保留两位小数。
Sample Input
1 2 1
1 3 2
2 3 3
3 4 4
Sample Output
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: 绿豆蛙的归宿相关推荐
- bzoj 3036: 绿豆蛙的归宿(Dp)
3036: 绿豆蛙的归宿 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 724 Solved: 511 [Submit][Status][Discu ...
- BZOJ 3036 绿豆蛙的归宿
Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达 ...
- BZOJ 3036 绿豆蛙的归宿 期望DP
Time Limit: 2 Sec Memory Limit: 128 MB Submit: 610 Solved: 431 Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它 ...
- bzoj 3036: 绿豆蛙的归宿
Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达 ...
- 【BZOJ 3036】 3036: 绿豆蛙的归宿 (概率DP)
3036: 绿豆蛙的归宿 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 491 Solved: 354 Description 随着新版百度空间的下 ...
- 3036: 绿豆蛙的归宿
题目链接 题目大意:带权DAG,从1走到n,若到达点x后有k条出边,走这k条边的概率均为1/k,求1-n期望路径长度 题解:f[i]表示i−n的期望路径长度f[i]表示i-n的期望路径长度 f[i]= ...
- Acwing 217. 绿豆蛙的归宿
Acwing 217. 绿豆蛙的归宿 题意: 给出一个有向无环的连通图,起点为 1,终点为 N,每条边都有一个长度. 数据保证从起点出发能够到达图中所有的点,图中所有的点也都能够到达终点. 绿豆蛙从起 ...
- 【BZOJ3036】绿豆蛙的归宿 拓补排序+概率
[BZOJ3036]绿豆蛙的归宿 Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度. ...
- [cogs1065]绿豆蛙的归宿
1065. [Nescafe19] 绿豆蛙的归宿 [题目描述] 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达每一个顶点时,如果有K条离开该点的道路 ...
最新文章
- 深度学习 英文 训练阶段_半监督深度学习训练和实现小Tricks
- 学计算机专业的毕业证,对于计算机专业的同学来说,学历真的那么重要吗?
- 生成对抗网络GANs理解(附代码)
- c语言程序框一点数字就消失,你用C语言编程时,会犯下面的错误吗?
- python网络爬虫教程-教你从零开始学会写 Python 爬虫
- 原生JS forEach()和map()遍历的区别以及兼容写法
- 2018.11.03-dtoj-3130-流浪者(rover)
- 干,认识Audio框架还因此发现一个雷
- moment 时间戳_【通知】2020 CATTI 考试准考证打印时间
- 欢迎加入免费星球,一起交流大数据技术。
- mac下编译curl库(处理https的问题)
- JZOJ 1236. 邦德I
- NSGA-Ⅱ算法C++实现(测试函数为ZDT1)
- SpringCloud之Ribbon源码分析(二)
- cad统计面积长度插件vlx_cad计算总长度插件下载|
- 硬盘柱面损坏怎么办_最靠谱的机械硬盘坏道修复工具一:DiskGenius
- 互联网产品设计思路参考
- A Survey on Conversational Recommender Systems
- AARRR模型:用户激活指标+方法,很实用!
- Linux下深度学习常用工具的安装
热门文章
- hadoop 基础环境搭建(一)
- 商丘网络推广浅析如何分析竞争对手的网站,制定更优秀的优化方案?
- 变频电机转矩频率特性曲线_伟创变频器
- 远程连接计算机用户名怎样修改,更改服务器远程桌面用户名
- mysql分析表增删改统计_MySQL增删改查|附思维导图
- c语言力扣l最大矩形,leetcode 84柱状图中最大的矩形,利用单调栈求解l
- git清空工作区和暂存区
- 乐观锁和悲观锁,可重入锁和不可重入锁(1)
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)——无非是在传统遍历过程中修改叶子结点加入后继结点信息(传统是stack记录),然后再删除恢复...
- padding valid same区别——就是是否补齐0的问题