2018.07.22 洛谷P4316 绿豆蛙的归宿(概率dp)
传送门
简单的递推。
由于是DAG" role="presentation" style="position: relative;">DAGDAG,所以状态转移方程很好写。
一个点的答案等于所有能到的点的答案加上所有边权再除以边数。
没理解的请看代码:
#include<bits/stdc++.h>
#define N 100005
#define M 200005
using namespace std;
struct Node{int v,next;double w;}e[M];
double dp[N];
bool f[N];
int cnt=0,first[N],tot[N],n,m;
inline void add(int u,int v,double w){
++tot[u];
e[++cnt].v=v;
e[cnt].w=w;
e[cnt].next=first[u];
first[u]=cnt;
}
inline double dfs(int p){
if(f[p])return dp[p];
f[p]=true;
dp[p]=0.0000;
if(p==n)return dp[p]=0.0000;
for(int i=first[p];i;i=e[i].next){
int v=e[i].v;
dp[p]+=e[i].w+dfs(v);
}
dp[p]/=tot[p];
return dp[p];
}
int main(){
memset(tot,0,sizeof(tot));
memset(f,false,sizeof(f));
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i){
int u,v;
double w;
scanf("%d%d%lf",&u,&v,&w);
add(u,v,w);
}
printf("%.2lf",dfs(1));
return 0;
}
2018.07.22 洛谷P4316 绿豆蛙的归宿(概率dp)的更多相关文章
- 洛谷 P4316 绿豆蛙的归宿
洛谷 P4316 绿豆蛙的归宿 洛谷传送门 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度, ...
- 洛谷P4316 绿豆蛙的归宿(期望)
题意翻译 「Poetize3」 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出 ...
- 洛谷P4316绿豆蛙的归宿——期望
题目:https://www.luogu.org/problemnew/show/P4316 期望水题,从终点向起点推,因为是DAG,所以拓扑序推过去即可. 代码如下: #include<ios ...
- 洛谷P4316 绿豆蛙的归宿
一眼看去,这不是高斯消元吗? 然后发现数据范围是100000... 然后发现是DAG...直接拓扑序递推即可. 边(x, y,z)的贡献是P(x) * z / out[x] #include < ...
- 2018.07.22 洛谷P3047附近的牛(树形dp)
传送门 给出一棵n" role="presentation" style="position: relative;">nn个点的树,每个点上有C ...
- 洛谷 P4316绿豆蛙的归宿
题目描述 记f[i]表示经过i号点的概率. 那么点v从点u到达的概率=经过点u的概率/点u的出度.由于v可以由多个点走到,所以f[v]+=f[u]/out[u]. 计算f的过程可以在拓扑中完成,同时可 ...
- 洛谷$P4316$ 绿豆蛙的归宿 期望
正解:期望 解题报告: 传送门! 看懂题目还是挺水的$(bushi$ 三个方法,但因为题目太水了懒得一一介绍了,,,反正都是期望,,,$so$随便港个最简单的趴$QwQ$ 直接考虑每条边的贡献,就会是 ...
- P4316 绿豆蛙的归宿 期望DP
P4316 绿豆蛙的归宿 期望DP DAG上,每条边有边权,走向相连每条路的概率相等,问从起点到终点所经过的路径总长度期望 因为发现终点走到终点期望为0,定义\(f[i]\)从终点走到\(i\)所经过 ...
- 2018.07.22 洛谷P2986 伟大的奶牛聚集(树形dp)
传送门 给出一棵树,树有边权和点权,若选定一个点作为中心,这棵树的代价是所有点权乘上到根的距离的和.求代价最小. 解法:一道明显的换根dp" role="presentation& ...
随机推荐
- J2SE 8的输入输出--Path/Paths File/Files; FileSystems 类的用法
Path的简单用法 //1. Path 正常用法 Path path = Paths.get("src/main/resource/zip"); logger.debug(path ...
- web 复制功能和span光标
参考文章:https://www.cnblogs.com/tugenhua0707/p/7395966.html https://blog.csdn.net/woshinia/article/deta ...
- MySql DATE_FORMAT函数用法
DATE_FORMAT(date, format) 函数用法 DATE_FORMAT(date, format) 函数根据format字符串格式化date值. 1.把字符串转为日期格式 实例: SEL ...
- 【转载】 Java并发编程:深入剖析ThreadLocal
原文链接:http://www.cnblogs.com/dolphin0520/p/3920407.html感谢作者的辛苦总结! Java并发编程:深入剖析ThreadLocal 想必很多朋友对Thr ...
- Why ExerciseAlone May Not Be the Key to Weight Loss
加强运动也许并不能减肥Why ExerciseAlone May Not Be the Key to Weight LossIf you give a mouse a running wheel, i ...
- 2018 Jar_Feb_Newwords
检测钩子程序 开发一个检测钩子程序的工具 - 豆丁网http://www.docin.com/p-1363993661.html pdf掺杂病毒的方法 Java的:xml文件中跳过的二进制数据在解析 ...
- Ansible Playbook Conditionals
通常,play的结果可能取决于变量的值,facts(有关远程系统的知识)或先前的任务结果. 在某些情况下,变量的值可能取决于其他变量. 此外,可以创建其他组,以根据主机是否与其他条件匹配来管理主机. ...
- centos7部署cacti
一.centos部署cacti 1. 关闭selinux. 2.fabric一键部署lamp 3. 设置mysql密码123456 1 mysql_secure_installation 4. 安装s ...
- Egit的merge合并冲突具体解决方法
稍微总结下弄了半个下午的egit的merge合并冲突解决方法,网上看的都是一个模板出来的,看的糊里糊涂,花了很多时间去实验整个合并流程.. 前提工作 创建一个普通JAVA工程Test,创建一个类Tes ...
- JAVA——遍历
关于遍历,发现了个坑. 详见如下: package com.fxl.test; import java.util.ArrayList; import java.util.Iterator; impor ...