3036: 绿豆蛙的归宿 - BZOJ
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
拓扑排序然后算期望长度
const
maxn=;
maxm=maxn*;
var
first,d,c:array[..maxn]of longint;
f,dis:array[..maxn]of double;
next,last,len:array[..maxm]of longint;
n,m,tot:longint; procedure insert(x,y,z:longint);
begin
inc(tot);
last[tot]:=y;
next[tot]:=first[x];
first[x]:=tot;
len[tot]:=z;
inc(d[y]);
inc(c[x]);
end; procedure init;
var
i,x,y,z:longint;
begin
read(n,m);
for i:= to m do
begin
read(x,y,z);
insert(x,y,z);
end;
end; var
q:array[..maxn]of longint;
l,r:longint; procedure work;
var
i:longint;
begin
l:=;
r:=;
q[]:=;
f[]:=;
while l<=r do
begin
i:=first[q[l]];
while i<> do
begin
f[last[i]]:=f[last[i]]+f[q[l]]/c[q[l]];
dis[last[i]]:=dis[last[i]]+dis[q[l]]/c[q[l]]+len[i]*f[q[l]]/c[q[l]];
dec(d[last[i]]);
if d[last[i]]= then
begin
inc(r);
q[r]:=last[i];
end;
i:=next[i];
end;
inc(l);
end;
writeln(dis[n]::);
end; begin
init;
work;
end.
3036: 绿豆蛙的归宿 - BZOJ的更多相关文章
- BZOJ 3036: 绿豆蛙的归宿( 期望dp )
从终点往起点倒推 . 在一个图 考虑点 u , 出度为 s : s = 0 , d[ u ] = 0 ; s ≠ 0 , 则 d( u ) = ( ∑ d( v ) ) / s ( ( u , v ) ...
- 【BZOJ 3036】 3036: 绿豆蛙的归宿 (概率DP)
3036: 绿豆蛙的归宿 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 491 Solved: 354 Description 随着新版百度空间的下线 ...
- Bzoj 3036: 绿豆蛙的归宿(期望)
3036: 绿豆蛙的归宿 Time Limit: 2 Sec Memory Limit: 128 MB Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归 ...
- BZOJ 3036: 绿豆蛙的归宿 期望 + 拓扑排序
随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿.给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度.绿豆蛙从起点出发,走向终点. 到达每一个顶点时,如果有K条离 ...
- BZOJ 3036 绿豆蛙的归宿
期望dp.类似记忆化搜索的方法实现. #include<iostream> #include<cstdio> #include<cstring> #include& ...
- 【BZOJ】3036: 绿豆蛙的归宿
[题意]给定DAG带边权连通图,保证所有点都能到达终点n,每个点等概率沿边走,求起点1到终点n的期望长度.n<=10^5. [算法]期望DP [题解]f[i]表示到终点n的期望长度. f[n]= ...
- BZOJ3036: 绿豆蛙的归宿&Wikioi2488:绿豆蛙的归宿
3036: 绿豆蛙的归宿 Time Limit: 2 Sec Memory Limit: 128 MBSubmit: 108 Solved: 73[Submit][Status] Descript ...
- 【BZOJ3036】绿豆蛙的归宿 拓补排序+概率
[BZOJ3036]绿豆蛙的归宿 Description 随着新版百度空间的下线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 给出一个有向无环的连通图,起点为1终点为N,每条边都有一个长度. ...
- BZOJ3036绿豆蛙的归宿
BZOJ3036绿豆蛙的归宿 锲下陟凝 褰宓万 郝瓦痕膳 叶诙摞 А知π剧 椐猊∫距 屠缲佗 ゲ蕖揪 俜欧彖鹤 磲砩ほ #琛扶 觅电闸ス 捆鳢げ 浜窠 魂睨"烁 蕞滗浼 洒ヂ跪 ...
随机推荐
- Sublime Python 插件配置合集
Python PEP8 Autoformat 插件 这是用来按PEP8自动格式化代码的.可以在包管理器中安装.快捷键 CTRL+SHIFT+R 自动格式化python代码 { "auto_c ...
- GIT Learning
一.Why Git 1.1 Git是分布式的,本地的版本管理 chect out代码后会在自己的机器上克隆一个自己的版本库,即使你在没有网络的环境,你仍然能够提交文件,查看历史版本记录,创建项目分支, ...
- 第九篇、自定义底部UITabBar
国际惯例先上图: 代码实现(在UITabBarViewController设置): - (void)setUpTabBar { LHLTabBar *tabBar = [[LHLTabBar allo ...
- OC6_代理的基本概念
// // Person.h // OC6_代理的基本概念 // // Created by zhangxueming on 15/6/24. // Copyright (c) 2015年 zhang ...
- 关联表映射 Association Table Mapping
把关联保存为一个表,存储关联表的外键 在对象中,使用集合作为域值,来处理多值域. 而在DB中,只能有单值域. 外键映射的核心,是在关联关系的单值端使用外键来维持联系. 而在多对多的关联关系中,已经不存 ...
- QQ截图工具提取
今晚关了QQ,突然想截个图,但是呢又不想打开QQ了,于是在网上搜索截图工具,下载了几个,感觉都没有QQ截图好用.索性直接百度QQ截图工具提取,看到有些网站上有提取的,里面的文件有点多,不是我中意的,突 ...
- 修改 timezone
1.通过命令修改 1.Set Time, Date Timezone in Linux from Command Line or Gnome | Use ntp 2.Use TZ database 3 ...
- C++ 四则运算简单设计
如果说要用C++写一个简单的四则运算的程序,相信难不到人,这还不简单吗?然后用不了五分钟,三下五除二,就出了下面的代码,一调试,没问题..... #include <iostream> u ...
- POJ1056 IMMEDIATE DECODABILITY【数据结构】
题目地址:http://poj.org/problem?id=1056 Description An encoding of a set of symbols is said to be immedi ...
- C++ 实现不能被继承的类
方法一: #include <iostream> using namespace std; class A { public: static A* getInstance(); stati ...