这题是概率与期望,不是很熟,所以冲了两篇题解才来写总结。

  首先可以发现1猎人死的轮数是他之前死了的列人数加一。

  那么题目转化为求先于一号猎人死的猎人数的期望值。

  考虑这样一个事情,就是所有的情况都可以按照一对猎人来划分,就是划分为猎人\(a\)先死于猎人\(b\)与猎人\(b\)先死于猎人\(a\)。

  所以\(i\)号猎人先死于1号猎人的概率是\(\frac{W_{i}}{W_{i}+W_{1}}\),贡献是一,所以直接求和即可。

  最后还要加一,因为是猎人数加一等于轮数。

Code
#include<bits/stdc++.h>
using namespace std;
namespace STD
{
#define rr register
typedef long long ll;
const int N=1e5+4;
const int mod=998244353;
int n;
int w[N];
int read()
{
rr int x_read=0,y_read=1;
rr char c_read=getchar();
while(c_read<'0'||c_read>'9')
{
if(c_read=='-') y_read=-1;
c_read=getchar();
}
while(c_read<='9'&&c_read>='0')
{
x_read=(x_read<<3)+(x_read<<1)+(c_read^48);
c_read=getchar();
}
return x_read*y_read;
}
ll qpow(ll base,ll exp)
{
ll ret=1ll;
while(exp)
{
if(exp&1) ret=ret*base%mod;
base=base*base%mod;
exp>>=1;
}
return ret;
}
};
using namespace STD;
int main()
{
n=read();
for(rr int i=1;i<=n;i++) w[i]=read();
ll ans=0;
for(rr int i=2;i<=n;i++)
ans=(ans+qpow(1ll*w[1]+w[i],mod-2)*w[i]%mod)%mod;
cout<<ans+1<<'\n';
}

  题解冲的是ZZ_zuozhe与401rk8的万分感谢。

2021-08-08 21:26:17 星期日

Hounter的更多相关文章

随机推荐

  1. 项目去O实践

    现状(自下而上) 1.Oracle数据库,表,序列,存储过程,视图 2.ibatis框架,映射xml中的sql语句 3.应用中通过指定字符串的形式获取查询结果   目标 1.置换数据库为PG数据库,迁 ...

  2. 论文笔记:(CVPR2017)PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

    目录 一. 存在的问题 二. 解决的方案 1.点云特征 2.解决方法 三. 网络结构 四. 理论证明 五.实验效果 1.应用 (1)分类: ModelNet40数据集 (2)部件分割:ShapeNet ...

  3. PS Lite - 源码解读

    PostOffice 类 /** * \brief 系统的中心. */ class Postoffice { public: /** * \brief 返回单例对象. */ static Postof ...

  4. MyBatis使用Zookeeper保存数据库的配置,可动态刷新

    核心关键点: 封装一个DataSource, 重写 getConnection 就可以实现 我们一步一步来看. 环境: Spring Cloud + MyBatis MyBatis常规方式下配置数据源 ...

  5. Android太太太太太卷了,累了

    我们聊到互联网行业的时候,一个不可避免的话题就是"内卷",而在程序员这个群体中,Android,绝对是卷得最厉害的. 毕竟前几年Android兴起的时候,入门门槛低,培训机构培养了 ...

  6. CentOS的crond系统定时服务

    crond 服务管理 [root@node01 ~]# service crond start           (启动服务) [root@node01 ~]# service crond stop ...

  7. 连通图与Tarjan算法

    引言 Tarjan算法是一个基于深度优先搜索的处理树上连通性问题的算法,可以解决,割边,割点,双连通,强连通等问题. 首先要明白Tarjan算法,首先要知道它能解决的问题的定义. 连通图 无向图 由双 ...

  8. 用Autohotkey让Kitty命令行变得更好用

    下面的脚本实现Win+K键激活一个输入框,给出了kitty命令行常用的几种格式,基本可分为两种:连接保存好的模板(session)和完全手工连接,前者用-load加Session名称,后者需要在命令行 ...

  9. pikachu RCE远程系统命令执行

    远程系统命令执行 一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口比如我们常见的路由器.防火墙.入侵检测等设备的web管理界面上一般会给用户提供一个ping操作的web界 ...

  10. SQL 练习39

    查询各学生的年龄,只按年份来算 SELECT *,year(GETDATE())-YEAR(Sage)年龄 from Student