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\) 满足
根据纳什均衡,\(k\) 即最大收益。
因为 \(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\) 的钱(负数表示赌红色),期望收益是:
要么 \(x=-1\) 要么 \(x=1\)。(细思极恐)
算一算发现决策没有影响。换句话说一直摸鱼直到袋子里只有一种颜色的球然后 all in 即可。
所以最后贡献就是
正经做法:考虑 \(n=m\) 时可以斯特林公式近似,对于其余情况可以发现每 \(\sqrt V\) 至少 \(\times 2\),所以直接暴力乘过去即可。
暴力做法:
\(\ln{n!}\) 有一个非常牛逼的近似。直接用 python 计算即可。

浙公网安备 33010602011771号