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…
传送门 首先,每一次有一个猎人死亡之后\(\sum w\)会变化,计算起来很麻烦,所以考虑在某一个猎人死亡之后给其打上标记,仍然计算他的\(w\),只是如果打中了一个打上了标记的人就重新选择.这样对应于每一个人的概率仍然是一样的,而\(\sum w\)在计算的过程中不会变. 因为要求最后死的概率,似乎不是很好求,考虑容斥.枚举一个集合\(S\),我们强制集合\(S\)中的猎人在\(1\)号猎人死亡之后死亡.设集合\(S\)中所有猎人的\(w\)之和为\(A\),所有猎人的\(w\)之和为\(su…
题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_i\) , \(B\) 是已死猎人的 \(w_i\) 的总和 , \(P_i\) 是 \(i\) 当前要被杀死的概率 ... (抄博客咯) 不难有 \(\displaystyle P_i = \frac{w_i}{A-B} \tag{1}\) 如果 不考虑猎人死没死 , 都能被当做目标 qwq (鞭…
考虑容斥,枚举一个子集S在1号猎人之后死.显然这个概率是w1/(Σwi+w1) (i∈S).于是我们统计出各种子集和的系数即可,造出一堆形如(-xwi+1)的生成函数,分治NTT卷起来就可以了. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespa…
题目链接 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…
点此看题面 大致题意: 有\(n\)个人相互开枪,每个人有一个仇恨度\(a_i\),每个人死后会开枪再打死另一个还活着的人,且第一枪由你打响.设当前剩余人仇恨度总和为\(k\),则每个人被打中的概率为\(\frac {a_i}k\).求第\(1\)个人最后被打死的概率. 一个重要性质 对于这题,首先我们可以发现,由于一个人死后,其他人被打中概率的分母会受到影响,产生了后效性,似乎很不可维护. 因此我们需要知道一个重要性质:设\(tot=\sum_{i=1}^na_i\),则题意可以转化为,每个人…
题目 Source http://acm.hust.edu.cn/vjudge/problem/42145 Description Let’s assume there is a new chess piece named Super-rook. When placed at a cell of a chessboard, it attacks all the cells that belong to the same row or same column. Additionally it at…
原文链接www.cnblogs.com/zhouzhendong/p/UOJ449.html 题解 设 f(i) 表示给 i 只鸽子喂食使得至少一只鸽子被喂饱的期望次数,先 min-max容斥 一下.($\frac ni$ 表示期望每 $\frac ni$ 步喂这 i 只鸽子一次) $$ans = \sum_{i=1}^n (-1)^{i+1}\binom ni \frac ni \cdot f(i)$$ 考虑如何求 f(i) .假设我们喂饱的是第一只鸽子,那么假设我们喂了其他鸽子 j 次,那么…
题解 感觉是一道神题,想不出来 问最后\(1\)号猎人存活的概率 发现根本没法记录状态 每次转移的分母也都不一样 可以考虑这样一件事情: 如果一个人被打中了 那么不急于从所有人中将ta删除,而是给ta打上一个标记,然后继续保留 下一回合如果打中的是一个已经死掉的就继续打 直到打到一个活的为止 可以发现这玩意儿可以是一个无限的东西 那么什么东西是收敛的可以求无线项的值? 等比数列! 那么我们就可以将分母确定下来了 考虑一个容斥: 枚举一个集合\(S\)表示的是至少有这\(i\)个人在1号猎人被打死…
Problem loj2541 题意概要:给定 \(n\) 个人的倒霉度 \(\{w_i\}\),每回合会有一个人死亡,每个人这回合死亡的概率为 自己的倒霉度/目前所有存活玩家的倒霉度之和,求第 \(1\) 个人最后一个死亡的概率 Solution 设 \(B = \sum_{i=2}^nw_i\) 要求 \(1\) 号最后一个被选中有点不好做,但是求 \(1\) 号第一个被选中还是比较好做的(\(\frac {w_1}{\sum_{i=1}^nw_i}\)) 至于这两者怎么联系起来,使用 \(…