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

  首先可以发现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. 【LeetCode】297. 二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 知识点:二叉树:递归 题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一 ...

  2. wireshark常见分析

    转载于https://www.cnblogs.com/sn1per/p/12553064.html https://www.cnblogs.com/csnd/p/12332421.html 直接看上面 ...

  3. web笔记随笔

    1.Web服务组件 8.第三方内容:广告统计.mockup 7.Web前端框架: HTML5. jQuery. Bootstrap 6.Web应用: CMS. BBS. Blog 5.Web开发框架: ...

  4. [SQL]修改和删除基本表

    修改基本表 SQL语言用alter table语句修改基本表,其一般格式如下: alter table <表名> add <列名> <数据类型> [<列级完整 ...

  5. Linux sudo权限提升漏洞CVE-2021-3156 POC及复现过程

    漏洞简介 2021年1月26日,国外研究团队披露了sudo 中存在的堆溢出漏洞(CVE-2021-3156).利用该漏洞,非特权账户可以使用默认的sudo配置主机上获取root权限,该漏洞影响1.8. ...

  6. 数据结构与算法-排序(十)桶排序(Bucket Sort)

    摘要 桶排序和基数排序类似,相当于基数排序的另外一种逻辑.它是将取值范围当做创建桶的数量,桶的长度就是序列的大小.通过处理比较元素的数值,把元素放在桶的特定位置,然后遍历桶,就可以得到有序的序列. 逻 ...

  7. java集成网站微信,微博,qq登录

    微信 WechatConfig.java package com.meeno.chemical.common.sdk.wechat.config; import org.springframework ...

  8. Walkthrough: Create and use your own Dynamic Link Library (C++)

    参考网站:https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-librar ...

  9. Vue 插槽 slot的简单实用

  10. WPF : ControlTemplate和DataTemplate的区别

    ControlTemplate用于描述控件本身. 使用TemplateBinding来绑定控件自身的属性, 比如{TemplateBinding Background}DataTemplate用于描述 ...