Hounter
这题是概率与期望,不是很熟,所以冲了两篇题解才来写总结。
首先可以发现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的更多相关文章
随机推荐
- ZooKeeper(2181、2171) 未授权访问
下载地址http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/ tar -xzvf zookeeper-3.4.14.tar.gz cd ...
- 我为什么选Markdown
前沿说明:Yaml Front Matter MarkDown 目录 前沿说明:Yaml Front Matter 什么是MarkDown Markdown是一种轻量级标记语言, 它允许人们使用易读易 ...
- Java面向对象06——类与对象小结
小结 /* 1. 类与对象 类是一个模板:抽象,对象是一个具体的实例 2. 方法 定义.调用 3. 对应的引用 引用类型: 基本类型(8) 对象是通过引用来操作的:栈-- ...
- RHCSA_DAY12
Linux软件包的分类 inghu 源码包 二进制包(RPM包) 源码包特点 源码包缺点:安装过程麻烦,需要用户手动编译,需要手动解决软件包的依赖关系 源码包优点:软件源代码开放,允许用户二次开发,安 ...
- 大龄程序员的出路在哪里?八年老Android的一点心得
这篇文章,给大家聊聊Android工程师的职业发展规划的一些思考,同时也给不少20多岁.30多岁,但是对自己的职业未来很迷茫的同学一些建议. 笔者希望通过此文,帮大家梳理一下程序员的职业发展方向,让大 ...
- remote: Support for password authentication was removed
周末提交代码,把代码push到github上,控制台报了下面的错误: remote: Support for password authentication was removed on August ...
- Create Virtual Machines with Vagrant and Puppet
Create the following puppet manifest and start VM with vagrant, you get a base production environmen ...
- AttributeError: module 'numpy' has no attribute 'num'
AttributeError: module 'numpy' has no attribute 'num' 写在前面 总的来说,先看看自己用的计算方式是不是写对了先,多个一起使用的话记得都看看 通过想 ...
- Android消息机制1-Handler(Java层)
一.概述 在整个Android的源码世界里,有两大利剑,其一是Binder IPC机制,,另一个便是消息机制(由Handler/Looper/MessageQueue等构成的). Android有大量 ...
- ad room 拷贝
当一个电路图中有多个相同组件的时候,我哦们一般使用 room格式拷贝. 基本思路 1.方法一 电路图使用repeat 多通道设计 2.简易的赋值粘贴,事实证明简单有效. 3.在pcb中删除对应一个单 ...