标签:图的遍历,数学期望

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

珍惜NOIP前最后的刷水机会2333

Code

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
#define mem(x,num) memset(x,num,sizeof x)
#ifdef WIN32
#define LL "%I64d"
#else
#define LL "%lld"
#endif
using namespace std;
inline ll read()
{ll f=1,x=0;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
const int maxn=1e5+6;
int n,m,last[maxn],vis[maxn],r[maxn]={0};
struct edge{int to,next,w;}e[maxn<<1];
double f[maxn];
void dfs(int x)
{if(!vis[x])vis[x]=1;else return;
#define reg(x) for(int i=last[x];i;i=e[i].next)
#define v e[i].toreg(x){dfs(v);f[x]+=e[i].w+f[v];}if(r[x])f[x]/=r[x];
}
int main()
{n=read(),m=read();rep(i,1,m){int x=read(),y=read(),z=read();e[i]=(edge){y,last[x],z};last[x]=i;r[x]++;}dfs(1);printf("%.2lf\n",f[1]);return 0;
}

BZOJ3036 绿豆蛙的归宿相关推荐

  1. bzoj3036 绿豆蛙的归宿

    绿豆蛙的归宿 Time Limit: 2 Sec Memory Limit: 128 MB Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一 ...

  2. [bzoj3036]绿豆蛙的归宿

    题目大意:给定 $DAG$ 带边权连通图,保证所有点都能到达终点 $n$,每个点等概率沿边走,求起点 $1$ 到终点 $n$ 的期望长度. 题解:拓扑,然后倒着$DP$就可以了 卡点:无 C++ Co ...

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

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

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

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

  5. Acwing 217. 绿豆蛙的归宿

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

  6. [cogs1065]绿豆蛙的归宿

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

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

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

  8. 【题解】绿豆蛙的归宿

    绿豆蛙的归宿 [题目描述] 给出一个有向无环的连通图,起点为 111 终点为 NNN ,每条边都有一个长度.绿豆蛙从起点出发,走向终点.数据保证从起点出发能够达到图中所有点,图中所有点都能够到底终点. ...

  9. 概率与期望——P4316 绿豆蛙的归宿

    概率与期望--P4316 绿豆蛙的归宿 题目 算法分析 Code 反思与总结 题目 P4316 绿豆蛙的归宿 算法分析 要计算路径的总长度期望,可以将每一个结点看作一个阶段,用dpdpdp来实现.(看 ...

最新文章

  1. BZOJ 2152 「国家集训队」聪聪可可(点分治)【BZOJ计划】
  2. OpenCV for Ios 学习笔记(4)-标记检测1
  3. python3.7安装turtle步骤-Python3 turtle安装和使用教程
  4. 查看linux下各数据类型的大小
  5. 十万个为什么儿童版_《虹猫蓝兔十万个为什么》上架爱奇艺奇巴布绘本馆
  6. python 内存分析工具_[转] python运行时内存分析工具meliae
  7. 【QCustomPlot】1.1 - Qt .qch帮助文档导入使用
  8. 剑指offer——面试题3:二维数组中的查找
  9. hadoop之Combiner
  10. 计算机应用离散数学,结合计算机应用的离散数学教学研究.pdf
  11. python协同过滤算法_【知识发现】基于用户的协同过滤推荐算法python实现
  12. 数字信号处理——线性相位型(Ⅱ、Ⅳ型)FIR滤波器设计(2)
  13. java面试常见设计模式
  14. docker bind source path does not exist: /etc/timezone“
  15. 想进入游戏建模行业,必须要了解的基础知识
  16. Android7.0解决 android.os.FileUriExposedException: file:///storage/emulated/0/
  17. Win7 64位系统下思维导图XMind的Java环境配置
  18. 2021面试第二弹来袭
  19. netdisk error2
  20. springboot集成阿里MNS消息队列发布订阅消息功能

热门文章

  1. 报错Manifest merger failed
  2. 鸿蒙能和ios媲美吗,把鸿蒙打造成一个和iOS相媲美的操作系统需要多久?
  3. Python学习笔记:1.2.8 字典
  4. 学习分享——基于深度学习的NILM负荷分解(一)对DL的看法准备工作
  5. 我叫mt4服务器维护时间,我叫MT4维护更新公告 维护更新内容及时间
  6. BZOJ3811: 玛里苟斯
  7. boost heap - d_ary_heap 的自定义compare函数用法
  8. Linux 文件与目录的管理
  9. java基础面试题及答案
  10. java弱化胖瘦客户端_Java架构师成长直通车百度云