设 s=n∑i=1wi。
首先考虑转化一下题意:将第 i 个猎人被射中的概率固定为 wis,并允许放空枪。
容易证明这样得到的答案是不变的。
于是容斥,钦点一部分猎人强制在 1 之后被打中。
有答案等于 ∑S⊆{2,…,n}(−1)|S|∞∑i=0(s−w1−∑k∈Swks)iw1s=∑S⊆{2,…,n}(−1)|S|w1s⋅sw1+∑k∈Swk=∑S⊆{2,…,n}(−1)|S|w1w1+∑k∈Swk=s−w1∑i=0w1w1+i[xi]n∏k=2(1−xwk)
分治 NTT 即可。
时间复杂度 O(nlog2n)。
代码:
1 |
|