题目
F题
n道菜,其中有0…n个肉的概率均为1 / (n + 1) , 现已知选了p个,有q个是肉、问下一个是肉的概率
题解
贝叶斯公式裸题
P(A∣B)=P(B∣A)∗P(B)/P(A)P(A | B) = P(B | A) * P(B) / P(A) P(A∣B)=P(B∣A)∗P(B)/P(A)
其中P(A) = 1 / (p + 1) , 这个不要推组合数,直接不用管总数,p个中有任意个概率相同
P(k∣A)=C(n−k,p−q)∗C(k,q) P(k | A) = C(n - k,p - q) * C(k,q) P(k∣A)=C(n−k,p−q)∗C(k,q)
考虑在k个肉中选q个,剩余的在n - k个中选
ANS = ∑P(k∣B) × (k − q)/(N − p)
然后推式子,∑C(n−k,p−q)∗C(k,q+1)=C(n+1,p+2)∑C(n - k,p - q) * C(k,q + 1) = C(n + 1,p + 2)∑C(n−k,p−q)∗C(k,q+1)=C(n+1,p+2)这里应该打表,或者找组合意义
考场上打表的技巧是非常重要的,不能死推式子!这个组合数求和显然可以化简!
组合意义是:考虑枚举前k中选q + 1个,第k + 1个必选,再在后n - k个选p - q个
这个组合意义是可以推广的,∑C(i,a)∗C(j,b)∗C(k,c)=C(i+j+k+2,a+b+c+2)∑C(i,a) * C(j,b) * C(k,c) = C(i + j + k + 2,a + b + c + 2)∑C(i,a)∗C(j,b)∗C(k,c)=C(i+j+k+2,a+b+c+2) 一直推广到m个未知数,这是一个很好的想法
答案化简出来是(q + 1) / (p + 2),如此简洁。不知道有没有更好的组合理解方式
G题
n个点(xi,yi),每个点的权值为xi & yi , 要求任意两个点满足Gcd(xi ^ yi ^ xj ^ yj,P) > 1 , P为偶数。
选一个点集合,使权值最大
n <= 500
显然,直接对点黑白染色。然后最大权闭合子图
这题P为偶数提示非常明显,然后发现点可以通过xi + yi的奇偶性划分成两个集合。(模 2 抑或即为加法)
还是应该把题看完,特别是ACM这种小样本的比赛。如果是CF没有时间或者过得人很少的确没有必要看
总结
寒假第一场比赛打得很惨啊。推式子的题刚了太久,最后打表没有时间了。
一道裸的kruskal重构树因为清空数组的问题调了很久。清空数组必须全部清空,即便可以不用清空。这样减少边界情况的讨论和错误的可能性!
还有再简单的题都必须推清楚式子,慢慢静下来写,写题的时候没必要慌,稍微慢一点,把每一句话在写的时候确认清楚!打代码的时间远远小于调的时间
今天还犯了筛mu的时候把mu打成mn这样zz的错误。不要慌,静下来写!