【BZOJ3036】绿豆蛙的归宿 拓补排序+概率
【BZOJ3036】绿豆蛙的归宿
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
题解:反向建边,拓补排序的时候顺便推一下就ok了。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
const int maxn=100010;
int n,m,cnt;
int to[maxn<<1],next[maxn<<1],head[maxn],d[maxn];
double f[maxn],val[maxn<<1],k[maxn];
queue <int> q;
void add(int a,int b,int c)
{
to[cnt]=b;
val[cnt]=c;
next[cnt]=head[a];
head[a]=cnt++;
}
int main()
{
scanf("%d%d",&n,&m);
memset(head,-1,sizeof(head));
int i,a,b,c,u;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);
add(b,a,c);
k[a]++,d[a]++;
}
q.push(n);
while(!q.empty())
{
u=q.front();
q.pop();
for(i=head[u];i!=-1;i=next[i])
{
d[to[i]]--;
f[to[i]]+=(f[u]+val[i])/(1.0*k[to[i]]);
if(!d[to[i]])
q.push(to[i]);
}
}
printf("%.2f",f[1]);
return 0;
}
【BZOJ3036】绿豆蛙的归宿 拓补排序+概率的更多相关文章
- BZOJ3036绿豆蛙的归宿
BZOJ3036绿豆蛙的归宿 锲下陟凝 褰宓万 郝瓦痕膳 叶诙摞 А知π剧 椐猊∫距 屠缲佗 ゲ蕖揪 俜欧彖鹤 磲砩ほ #琛扶 觅电闸ス 捆鳢げ 浜窠 魂睨"烁 蕞滗浼 洒ヂ跪 ...
- BZOJ3036: 绿豆蛙的归宿&Wikioi2488:绿豆蛙的归宿
3036: 绿豆蛙的归宿 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 108 Solved: 73[Submit][Status] Descript ...
- [luogu]P4316 绿豆蛙的归宿(拓扑排序,期望)
P4316 绿豆蛙的归宿 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够 ...
- bzoj3036: 绿豆蛙的归宿
Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点.到达每 ...
- BZOJ 3036: 绿豆蛙的归宿 期望 + 拓扑排序
随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿.给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达每一个顶点时,如果有K条离 ...
- 【题解】 bzoj3036: 绿豆蛙的归宿 (期望dp)
题面戳我 Solution 反向建图跑拓扑排序,顺便处理\(dp\) 假设某条边是\(u \rightarrow v (dis)\) ,那么转移方程就是\(dp[v]+=(dp[u]+dis)/in[ ...
- bzoj3036: 绿豆蛙的归宿(期望DP)
刷水反被水题日,拓扑写炸WA了2发T T... 因为是DAG图,可以直接递推,不需要高斯消元 #include<iostream> #include<cstring> #inc ...
- [codevs 2488]绿豆蛙的归宿(拓扑排序)
题目:http://dev.codevs.cn/problem/2488/ 分析:这题有个特殊的地方,就是每个边都有可能走到,所以就是每个边的权值*每个边的概率,所以只要求概率,拓扑一下就可以了.
- 洛谷4316 绿豆蛙的归宿(DAG递推/概率dp)
题目大意: 给定一个DAG,求起点到终点的路径长度期望 根据题意可以知道每一条边都有一定概率被走到 那么\(\displaystyle\begin{aligned} Ans = \sum_{e \in ...
随机推荐
- 10月30日下午 PHP精确查询(模糊查询、模糊+关键字共同查询)
1.一个条件的模糊查询 <body> <br /> <form action="main.php" method="post"&g ...
- Google Maps API V3 之绘图库 信息窗口
Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...
- [Unity] Cg标准函数库
- yii2 伪静态配置
原文地址: http://gblz.net/2015/242.html https://segmentfault.com/q/1010000003804408
- Mongodb profile(慢查询日志)
在MySQL中,慢查询日志是经常作为我们优化数据库的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是MongoDB Database Profiler.所以MongoDB 不仅有,而 ...
- #define #include #undef的其中一个用法(目的)
一.背景 最近在跟一段系统级的代码,和原来单纯的下位机代码相比,真的是刘姥姥进大观园--看花了眼.相较于 之前所常见的各种下位机代码,系统级代码常常会出现深层次结构体嵌套,结构体内的各种回调函数导致对 ...
- netty 解析http请求 post
http://blog.csdn.net/neosmith/article/details/50383548
- php之登录功能实现。
项目默认存在的东西:jquery库[jquery.min.js] 登录功能实现的基本逻辑: 1.书写前台php功能基本页面:(index.php) a.编写基本功能,比如用户名.密码.登录 b.引用j ...
- HTTPS Web配置举例
http://www.h3c.com.cn/Products___Technology/Technology/Security_Encrypt/Other_technology/Representat ...
- HDU 3879 Base Station(最大权闭合子图)
经典例题,好像说可以转化成maxflow(n,n+m),暂时只可以勉强理解maxflow(n+m,n+m)的做法. 题意:输入n个点,m条边的无向图.点权为负,边权为正,点权为代价,边权为获益,输出最 ...