题解-PKUWC2018 猎人杀】的更多相关文章

Problem loj2541 题意概要:给定 \(n\) 个人的倒霉度 \(\{w_i\}\),每回合会有一个人死亡,每个人这回合死亡的概率为 自己的倒霉度/目前所有存活玩家的倒霉度之和,求第 \(1\) 个人最后一个死亡的概率 Solution 设 \(B = \sum_{i=2}^nw_i\) 要求 \(1\) 号最后一个被选中有点不好做,但是求 \(1\) 号第一个被选中还是比较好做的(\(\frac {w_1}{\sum_{i=1}^nw_i}\)) 至于这两者怎么联系起来,使用 \(…
题解 感觉是一道神题,想不出来 问最后\(1\)号猎人存活的概率 发现根本没法记录状态 每次转移的分母也都不一样 可以考虑这样一件事情: 如果一个人被打中了 那么不急于从所有人中将ta删除,而是给ta打上一个标记,然后继续保留 下一回合如果打中的是一个已经死掉的就继续打 直到打到一个活的为止 可以发现这玩意儿可以是一个无限的东西 那么什么东西是收敛的可以求无线项的值? 等比数列! 那么我们就可以将分母确定下来了 考虑一个容斥: 枚举一个集合\(S\)表示的是至少有这\(i\)个人在1号猎人被打死…
传送门 首先,每一次有一个猎人死亡之后\(\sum w\)会变化,计算起来很麻烦,所以考虑在某一个猎人死亡之后给其打上标记,仍然计算他的\(w\),只是如果打中了一个打上了标记的人就重新选择.这样对应于每一个人的概率仍然是一样的,而\(\sum w\)在计算的过程中不会变. 因为要求最后死的概率,似乎不是很好求,考虑容斥.枚举一个集合\(S\),我们强制集合\(S\)中的猎人在\(1\)号猎人死亡之后死亡.设集合\(S\)中所有猎人的\(w\)之和为\(A\),所有猎人的\(w\)之和为\(su…
考虑容斥,枚举一个子集S在1号猎人之后死.显然这个概率是w1/(Σwi+w1) (i∈S).于是我们统计出各种子集和的系数即可,造出一堆形如(-xwi+1)的生成函数,分治NTT卷起来就可以了. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespa…
题面传送门 很久之前(2020 年)就听说过这题了,这么经典的题怎么能只听说而亲自做一遍呢 首先注意到每次开枪打死一个猎人之后,打死其他猎人概率的分母就会发生变化,这将使我们维护起来非常棘手,因此我们考虑做一个转化:每次随便从全集中选出一个猎人(不管死的活的),如果它是活的就将它射死.假设现在死了的猎人的 \(w_i\) 值之和为 \(T\),所有猎人的 \(w_i\) 值之和为 \(U\),那么精通无穷级数的同学应该不难推出,对于某个还活着的猎人 \(j\),射到的第一个活着的猎人是 \(j\…
https://blog.csdn.net/Maxwei_wzj/article/details/80714129 n个二项式相乘可以用分治+FFT的方法,使用空间回收可以只开log个数组. #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++) using namespace std; ,mod=; ],tmp[][N]; int ksm(int a,int b…
点此看题面 大致题意: 有\(n\)个人相互开枪,每个人有一个仇恨度\(a_i\),每个人死后会开枪再打死另一个还活着的人,且第一枪由你打响.设当前剩余人仇恨度总和为\(k\),则每个人被打中的概率为\(\frac {a_i}k\).求第\(1\)个人最后被打死的概率. 一个重要性质 对于这题,首先我们可以发现,由于一个人死后,其他人被打中概率的分母会受到影响,产生了后效性,似乎很不可维护. 因此我们需要知道一个重要性质:设\(tot=\sum_{i=1}^na_i\),则题意可以转化为,每个人…
题目链接 LOJ:https://loj.ac/problem/2541 Solution 很巧妙的思路. 注意到运行的过程中概率的分母在不停的变化,这样会让我们很不好算,我们考虑这样转化:假设所有人都活着,然后随机选一个人,如果此人已死那就重新选一次. 假设当前活着的人集合为\(T\),那么射中第\(i\)个人的概率就是: \[ \sum_{i=0}^{\infty}\left(\frac{s_{all}-s_T}{s_{all}}\right)^i\frac{w_i}{s_{all}}=\f…
[LOJ2541][PKUWC2018]猎人杀(容斥,FFT) 题面 LOJ 题解 这题好神仙啊. 直接考虑概率很麻烦,因为分母总是在变化. 但是,如果一个人死亡之后,我们不让他离场,假装给他打一个标记(猎人印记???) 如果在一次选择的时候选中了一个已经被打过标记的人,那么我们就重新做一次选择. 这样显然没有任何影响. 现在考虑如何求第一个人最后一个被打上标记的概率. 我们容斥一下,枚举一下哪些人会在\(1\)之后被选择,那么容斥系数就是\((-1)\)的人数次方. 那么对于钦定的在\(1\)…
「PKUWC2018」猎人杀 解题思路 首先有一个很妙的结论是问题可以转化为已经死掉的猎人继续算在概率里面,每一轮一直开枪直到射死一个之前没死的猎人为止. 证明,设所有猎人的概率之和为 \(W\) ,当前已经死掉了概率之和为 \(T\) 的猎人,原问题下一个射死 \(i\) 的概率 \(P\) 为 \[ P =\dfrac{w_i}{W-T} \] 转化过后的问题下一个射死 \(i\) 的概率为 \[ P=\dfrac{T}{W}P+\dfrac{w_i}{W} \\ \dfrac{W-T}{W…