2020-2021 Winter Petrozavodsk Camp, Day 5

链接

完全被 Clovers 带飞了。

M. Discrete Logarithm is a Joke

J. Increasing or Decreasing

G. Remove the Prime

I. Trade

签到题。

A. Assignment Problem

直接暴力 dfs 就好了,毛估估一下复杂度 \(O(2^{2m}m+n)\)

E. Smol Vertex Cover

首先显然有 \(C\geq M\),所以只需要判断是否有 \(C=M\)\(C=M+1\) 即可。

\(M\) 可以用带花树求出。对于 \(C=M\) 可以发现一条边两段至少有一个在点集里,考虑对于匹配的点建 2-sat 求解即可。对于 \(C=M+1\) 暴力枚举额外选的一个点,然后再跑 2-sat 即可。

复杂度 \(O(nm)\)

C. Multiple?

结论:答案为 \(\binom{n-1}{k-1}\varphi(n)\)

考虑一个性质:至少有一种数出现次数超过 \(\frac n2\)。证明:假设非众数数字个数为 \(t\),将 \(t\) 中数字两两求和,至多少有 \(\min\{t,\lfloor\frac{n-k}2\rfloor\}\) 种不同的数。

那么这种数 \(x\) 必须有 \((x,n)=1\)。考虑令所有数乘上 \(x^{-1}\),这样众数就变成 \(1\) 了。

容易发现这样要求剩下 \(\frac n2-k\) 个数的和不能超过 \(\frac n2\),否则一定不合法。

可以发现去掉至少有 \(\frac n2\)\(1\) 的限制,总共 \(\frac 34 n\) 个数的和不能超过 \(n\) 同样有至少 \(\frac n2\)\(1\)

所以最后就是一个插板,组合数暴力计算可以通过。

B. Lockout vs tourist

枚举当前已经选掉哪些点,从后往前,这样可以知道当前如果和对手选一样的结果,期望会是多少。

\(B_i\) 为与对手选了一样的之后的期望,令 \(q_i\) 为对方决策为 \(i\) 的期望。在 \(q_i\) 没有限制的情况下,根据纳什均衡容易得到:存在常数 \(k\) 满足

\[\forall i,A_i+q_i(B_i-A_i)=k\\ \]

根据纳什均衡,\(k\) 即最大收益。

\[q_i=\frac{A_i-k}{A_i-B_i} \]

\[\sum q_i=1\Longrightarrow \sum\frac{A_i-k}{A_i-B_i}=1 \]

\[k=\frac{\sum\frac{A_i}{A_i-B_i}-1}{\sum\frac{1}{A_i-B_i}} \]

因为 \(q_i\) 有不为负的限制,所以最后如果 \(A_i\leq k\),那么直接放弃之后的所有点(换句话说对手不会去管这些点)。如果 \(A_i\leq k,B_i\geq A_i\),那么对手放了还不如不放,同样会放弃,不过此时应该令 \(k=A_i\)

复杂度 \(O(2^nn\log n)\)

L. Extreme Wealth

考虑 dp,用 \(f_{i,j}\) 表示还有 \(i\) 个红色和 \(j\) 个蓝色的期望倍率,不妨假设 \(i<j\)。假设当前钱数是 \(1\),赌了蓝色 \(x\) 的钱(负数表示赌红色),期望收益是:

\[\frac{j}{i+j}f_{i,j-1}(1+x)+\frac{i}{i+j}f_{i-1,j}(1-x) \]

要么 \(x=-1\) 要么 \(x=1\)(细思极恐)

算一算发现决策没有影响。换句话说一直摸鱼直到袋子里只有一种颜色的球然后 all in 即可。

所以最后贡献就是

\[\frac{2^{n+m}}{\binom{n+m}{n}} \]

正经做法:考虑 \(n=m\) 时可以斯特林公式近似,对于其余情况可以发现每 \(\sqrt V\) 至少 \(\times 2\),所以直接暴力乘过去即可。

暴力做法:

\[\frac{2^{n+m}}{\binom{n+m}{n}}=e^{(n+m)\ln2+\ln{n!}+\ln{m!}+\ln{(n+m)!}} \]

\(\ln{n!}\) 有一个非常牛逼的近似。直接用 python 计算即可。

posted @ 2021-10-18 20:41  Flying2018  阅读(524)  评论(1)    收藏  举报