P4316 绿豆蛙的归宿

题意:给出一个有向无环图,对于每个点,一共有k条出边,则选择每条边的概率相等,都为1/k,问从点1走到点n的期望路径长度

思路:有向无环图,考虑拓扑,本题不同于P6154 游走,P6154这题是所有路径的概率相等,而本题仅仅只是对于每个点选择出边的时候每条出边的概率相同,所以显然每条路径的概率并不相同,所以我们不能总体对路径进行分析,本题需要对每条边进行分析,我们可以求出每条边的期望选择次数,再乘边权求和即可得到结果

对于每条边,期望次数即为这条边的起点的期望次数+1/k[i]

对于每个点,期望次数即为所有以这个点为临点的其他点的(期望次数+1/k[i])的和

Accode:

#include<bits/stdc++.h>
#define endl '\n'
#define INF 0x3f3f3f3f
#define INFF 0x3f3f3f3f3f3f3f3f
#define int long long
#define fix fixed<<setprecision
#define pb push_back
#define Mirai ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
using namespace std;
typedef pair<int,int> pii;
const int N=2e5+10;
int du[N],w[N];
double cnt[N],f[N];
double dp[N];
vector<pii> g[N];
int n,m;
void top()
{queue<int> q;q.push(1);cnt[1]=1;while(q.size()){int u=q.front();q.pop();for(auto [v,wid]:g[u]){cnt[v]+=cnt[u]/g[u].size();f[wid]+=cnt[u]/g[u].size();if(--du[v]==0)q.push(v);}}
}
void solve()
{cin>>n>>m;for(int i=0;i<m;i++){int u,v;cin>>u>>v>>w[i];g[u].pb({v,i});du[v]++;}top();double res=0;for(int i=0;i<m;i++){res+=w[i]*f[i];}cout<<fix(2);cout<<res<<endl;
}
signed main()
{Mirai;int T=1;//cin>>T;while(T--){solve();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目进度管理:掌握进度管理技巧,保障项目不延期

项目进度问题通常在小型团队中并不显著&#xff0c;因为这类团队通常人数较少&#xff0c;成员间的沟通成本相对较低。这使得他们在执行项目时更加团结和协作。 然而&#xff0c;当团队规模扩大到上百人时&#xff0c;这使得沟通变得更为复杂&#xff0c;在这个庞大的团队中&…

10 分钟了解 nextTick,并实现简易版的 nextTick

一、什么是 nextTick nextTick 是一个用于在 DOM 更新完成后执行回调函数的方法。在 Vue.js 或其他类似框架中&#xff0c;当我们修改了数据后&#xff0c;DOM 并不会立即更新&#xff0c;而是会进入一个队列中&#xff0c;然后在下一个 tick 执行更新。nextTick 提供了一种方式…

JAVA线上事故:递归导致的OOM

最近因为人员离职&#xff0c;接手一个项目&#xff0c;是xxljob的客户端&#xff0c;部署在k8s上&#xff0c;在排查线上工单时&#xff0c;发现了一个问题&#xff1a; 在管理界面上&#xff0c;我惊讶的发现&#xff0c;三个月的时间&#xff0c;2个Pod&#xff0c;每个都重…

MacOS 终端显示 Git 分支的名称

前提&#xff1a;MacOS 默认终端是不显示 Git 分支的名称的&#xff0c;个人感觉难受&#xff0c;样式也不好看&#xff01;就找到了 oh-my-zsh 终端输入以下指令就OK了 sh -c "$(curl -fsSL https://gitee.com/shmhlsy/oh-my-zsh-install.sh/raw/master/install.sh)&qu…

(js)循环数组构建对象

(js)循环数组构建对象 数组 dataArr["企业","工序"]方法 //构建表头 dataArr.forEach((item) > {let obj {};obj {label: item,value: item,};this.headList.push(obj); });对象 this.headList [{label: "企业",value: "企业&quo…

debian10安装配置vim+gtags

sudo apt install global gtags --version gtags //生成gtag gtags-cscope //查看gtags gtags与leaderf配合使用 参考: 【VIM】【LeaderF】【Gtags】打造全定制化的IDE开发环境&#xff01; - 知乎

以ACM32F403为主控的车载电动尾门案例分析

方案概述 随着汽车行业智能化、电气化、网联化大潮的发展&#xff0c;电动后尾门逐渐普及化。此方案兼容多种人机交互接口&#xff0c;包括传统的按键开关&#xff0c;也包括智能脚踢传感器&#xff0c;远程手机控制等智能控制技术&#xff0c;支持防夹算法&#xff0c;支持全锁…

Apache+PHP环境配置 手动配置

准备工作&#xff0c;在G盘新建一个WAMP目录 1.获取Apache 打开下载地址Apache VS17 binaries and modules download&#xff0c;下载 httpd-2.4.58-win64-VS17.zip 将下载好的httpd-2.4.58-win64-VS17.zip拷贝到G:\WAMP目录下并解压到当前目录&#xff0c;得到Apache24目录 …

u盘加密软件合辑丨u盘怎么上锁某个文件夹

毫无疑问&#xff0c;U盘是我们生活中最常使用的移动储存设备&#xff0c;常见的U盘普遍没有使用限制&#xff0c;任何人都可以浏览其中的数据&#xff0c;这就可能导致数据泄密和隐私泄露&#xff0c;那么普通U盘怎么变成加密U盘呢&#xff1f; 一、上锁某个U盘文件夹 可以将…

Vue3+Echarts:堆积柱状图的绘制

一、需求 在Vue3项目中&#xff0c;想用Echarts来绘制堆积柱状图&#xff0c;去展示最近一周APP在不同渠道的登录人数效果如下&#xff1a; 二、实现 (关于Echarts的下载安装以及图表的样式设计&#xff0c;此处不展开&#xff01;) 1、Templates部分 <template>&l…

向本地maven中加载依赖

1、现在maven官网仓库找到相应依赖 Maven Repository: Search/Browse/Explore (mvnrepository.com) 2、下载相应jar包 3、使用maven命令在jar所在文件加内cmd运行 注意修改参数 -DgroupId&#xff1a;表示jar对应的groupId <groupId>io.confluent</groupId>…

vs2005资源文件如何使用utf-8

vs2005资源文件如何使用utf-8 遗憾的是,Visual Studio 2005 的资源编译器不原生支持 UTF-8 编码的资源文件。这是因为当时的工具并没有针对 UTF-8 代码页(65001)进行优化,这意味着尽管 .rc 文件可以包含 UTF-8 文本,但在编译时可能会遇到问题。 如果您需要在 Visual Stu…

菜鸟进阶数据大牛:如何系统学习BI商业智能

在这个信息爆炸式增长的时代&#xff0c;挖掘数据的潜在价值尤为重要&#xff0c;越来越多的人将目光聚集于商务智能BI领域。通过数据分析软件对来自不同的数据源进行统一的处理和管理&#xff0c;并以灵活的方式展示数据之间的联系&#xff0c;辅助企业进行决策。 在BI越发重…

MATLAB - 最优控制(Optimal Control)

系列文章目录 前言 - 什么是最优控制&#xff1f; 最优控制是动态系统满足设计目标的条件。最优控制是通过执行以下定义的最优性标准的控制律来实现的。一些广泛使用的最优控制方法有&#xff1a; 线性二次调节器 (LQR)/线性二次高斯 (LQG) 控制 模型预测控制 强化学习 极值…

HBase基础知识(一):HBase简介、HBase数据模型与基本架构

第1章HBase简介 1.1HBase定义 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 1.2HBase数据模型 逻辑上&#xff0c;HBase的数据模型同关系型数据库很类似&#xff0c;数据存储在一张表中&#xff0c;有行有列。但从HBase的底层物理存储结构&#xff08;K-V&a…

【Spring教程31】SSM框架整合实战:从零开始学习SSM整合配置,如何编写Mybatis SpringMVC JDBC Spring配置类

目录 1 流程分析2 整合配置2.1 步骤1&#xff1a;创建Maven的web项目2.2 步骤2:添加依赖2.3 步骤3:创建项目包结构2.4 步骤4:创建SpringConfig配置类2.5 步骤5:创建JdbcConfig配置类2.6 步骤6:创建MybatisConfig配置类2.7 步骤7:创建jdbc.properties2.8 步骤8:创建SpringMVC配置…

【MyBatis Plus】Service Mapper内置接口讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《MyBatis-Plus》。&#x1f3af;&#x1f3af; &am…

java借助代理ip,解决访问api频繁导致ip被禁的问题

前言 Java是一种非常流行的编程语言&#xff0c;许多开发者经常使用Java来开发各种类型的应用程序&#xff0c;包括访问API。然而&#xff0c;由于频繁访问API可能导致IP被禁的问题&#xff0c;我们需要借助代理IP来解决这个问题。 本文将为您展示如何使用Java借助代理IP来解…

FFmpeg实现RTSP推流

以下是的示例代码&#xff0c;演示了如何从本地文件&#xff08;mp4&#xff09;读取媒体流&#xff0c;并将其推送到 RTSP 服务器&#xff1a; 代码未经验证&#xff0c;供参考 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <…

项目中webpack优化配置(1)

项目中webpack优化配置 一. 开发效率&#xff0c; 体验 1. DLL&#xff08;开发过程中减少构建时间和增加应用程序的性能&#xff09; 使用 DllPlugin 进行分包&#xff0c;使用 DllReferencePlugin(索引链接) 对 manifest.json 引用&#xff0c;让一些基本不会改动的代码先…