洛谷P4316 绿豆蛙的归宿
一眼看去,这不是高斯消元吗?
然后发现数据范围是100000...
然后发现是DAG...直接拓扑序递推即可。
边(x, y,z)的贡献是P(x) * z / out[x]
#include <cstdio>
#include <queue>
const int N = ; struct Edge {
int v, nex, len;
}edge[N << ]; int top; int in[N], topo[N], e[N], n, out[N];
double p[N]; inline void add(int x, int y, int z) {
top++;
edge[top].v = y;
edge[top].len = z;
edge[top].nex = e[x];
e[x] = top;
return;
} inline void topo_sort() {
std::queue<int> Q;
for(int i = ; i <= n; i++) {
if(!in[i]) {
Q.push(i);
}
}
int t = ;
while(!Q.empty()) {
int x = Q.front();
Q.pop();
topo[++t] = x;
for(int i = e[x]; i; i = edge[i].nex) {
int y = edge[i].v;
in[y]--;
if(!in[y]) {
Q.push(y);
}
}
}
return;
} int main() {
int m;
scanf("%d%d", &n, &m);
for(int i = , x, y, z; i <= m; i++) {
scanf("%d%d%d", &x, &y, &z);
add(x, y, z);
in[y]++;
out[x]++;
}
topo_sort();
p[] = 1.0;
double ans = 0.0;
for(int a = ; a <= n; a++) {
int x = topo[a];
for(int i = e[x]; i; i = edge[i].nex) {
int y = edge[i].v;
p[y] += p[x] / out[x];
ans += p[x] * edge[i].len / out[x];
}
}
printf("%.2lf", ans);
return ;
}
AC代码
洛谷P4316 绿豆蛙的归宿的更多相关文章
- 洛谷 P4316 绿豆蛙的归宿
		
洛谷 P4316 绿豆蛙的归宿 洛谷传送门 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度, ...
 - 洛谷P4316 绿豆蛙的归宿(期望)
		
题意翻译 「Poetize3」 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出 ...
 - 洛谷P4316绿豆蛙的归宿——期望
		
题目:https://www.luogu.org/problemnew/show/P4316 期望水题,从终点向起点推,因为是DAG,所以拓扑序推过去即可. 代码如下: #include<ios ...
 - 2018.07.22 洛谷P4316 绿豆蛙的归宿(概率dp)
		
传送门 简单的递推. 由于是DAG" role="presentation" style="position: relative;">DAGDA ...
 - 洛谷 P4316绿豆蛙的归宿
		
题目描述 记f[i]表示经过i号点的概率. 那么点v从点u到达的概率=经过点u的概率/点u的出度.由于v可以由多个点走到,所以f[v]+=f[u]/out[u]. 计算f的过程可以在拓扑中完成,同时可 ...
 - 洛谷$P4316$ 绿豆蛙的归宿 期望
		
正解:期望 解题报告: 传送门! 看懂题目还是挺水的$(bushi$ 三个方法,但因为题目太水了懒得一一介绍了,,,反正都是期望,,,$so$随便港个最简单的趴$QwQ$ 直接考虑每条边的贡献,就会是 ...
 - 洛谷4316 绿豆蛙的归宿(DAG递推/概率dp)
		
题目大意: 给定一个DAG,求起点到终点的路径长度期望 根据题意可以知道每一条边都有一定概率被走到 那么\(\displaystyle\begin{aligned} Ans = \sum_{e \in ...
 - P4316 绿豆蛙的归宿(期望)
		
P4316 绿豆蛙的归宿 因为非要用bfs所以稍微麻烦一点qwq(大家用的都是dfs) 其实问题让我们求的就是经过每条边的概率*边权之和 我们可以用bfs把图遍历一遍处理概率,顺便把每条边的概率*边权 ...
 - Luogu P4316 绿豆蛙的归宿
		
P4316 绿豆蛙的归宿 题意翻译 「Poetize3」 题目背景 随着新版百度空间的上线,Blog宠物绿豆蛙完成了它的使命,去寻找它新的归宿. 题目描述 给出一个有向无环图,起点为1终点为N,每条边 ...
 
随机推荐
- Angular ngRepea
			
<!DOCTYPE html><html ng-app><head lang="en"> <meta charset="UTF- ...
 - logback框架之——日志分割所带来的潜在问题
			
源码: logback-test.xml文件如下,有2个需要我们重点关注的参数: fileNamePattern:这里的日志文件名变动的部分是年月日时,外加1个文件分割自增变量,警告,年月日时的数值依 ...
 - 记一次tomcat7.0版本启动项目失败问题
			
测试项目在tomcat7中启动失败,报错如下: @794314bc3 Error during job execution (jobs.Bootstrap) Oops: VerifyError ~ p ...
 - Git官方推荐用书
			
用Git看了N多的Blog, 乱七八糟. 官方的推荐用书写得最好,最权威.还可以下载pdf.记录一笔. https://git-scm.com/book/zh/v2/
 - idea 通过命令操作git
			
关于如何把git(远程)端项目拉取到idea端的操作可以观看:https://blog.csdn.net/autfish/article/details/52513465 在本地向远程提交文件git ...
 - Lodop打印设计矩形重合预览线条变粗
			
LODOP中的打印设计是辅助进行开发的,实际打印效果应以预览为准,很多效果都是在设计界面显示不出来,或设计和预览界面有差异.例如add_print_text文本的字间距.行间距,旋转,还有允许标点溢出 ...
 - 使用Windows任务计划程序运行Windows PowerShell脚本
			
创建计划任务以运行PowerShell脚本 我需要创建一个计划任务来运行Windows PowerShell脚本的第一件事是我将执行的命令行.找到这个的简单方法是使用Run 命令.有时,我需要知道什么 ...
 - codeforces474D
			
Flowers CodeForces - 474D 话说某个幸运的小伙伴X拿到了kevin女神送的蛋糕,然而他的吃法非常奇特,他独创了两种吃蛋糕的办法:一.一次吃一整个蛋糕:二.一次吃k个蛋糕. 那么 ...
 - Servlet篇 之 web服务器
			
创建web项目,在web项目中创建html页面,然后把项目部署到web服务器里面,启动服务器之后,可以使用浏览器通过URL地址的方式,访问到web项目中的html页面了 Web服务器: 常用tomca ...
 - Facebook开源最先进的语音系统wav2letter++
			
最近,Facebook AI Research(FAIR)宣布了第一个全收敛语音识别工具包wav2letter++.该系统基于完全卷积方法进行语音识别,训练语音识别端到端神经网络的速度是其他框架的两倍 ...