Petrozavodsk Winter-2019. Petrozavodsk SU Contest
A. DIY Radar
- 随机两个点,使得两次询问能区分所有101x101x4种情况
B. Word Squared
- 猜结论签到
C. Quoridor
D. Game X
- 不难发现,一定是让正数尽可能多,或者尽可能少。
- 设有 \(x\) 个正数,\(n-x\) 个负数。那么凑出的 unordered_pair 个数在 \([\binom{x}{2},\binom{n}{2}-\binom{n-x}{2}]\) 之间,且皆可取到,因此有 \(k∈[\binom{x}{2},\binom{n}{2}-\binom{n-x}{2}]\)
- 二分.二连,求出最小的 \(x\) 和最大的 \(x\)。
E. 5-Path
- 二分答案,转化为判断是否存在 5-path 问题
- 把5条边分为亲近 \(a\) 的两条,和亲近 \(b\) 的两条,以及中间的一条
- 预处理出亲近 \(a/b\) 的那两条边的信息,扔进桶里
- 枚举中间的一条,用预处理的信息进行判定(保证不能有重复点)
F. Nightmare
- 二分答案,判断线段与多边形是否相交
G. String Transformation
- 考虑每次从k个洞的最优解变换到k+1个洞的最优解,有两种可能:
- 1.使一个字符的洞+1
- 2.使一个字符的洞+2,使另一个字符的洞-1
- 可以证明如果还有其他可能会推出当前不是最优解
H. Employees
做法1
- 枚举每个点在每个时刻进入房间,统计答案
- 分两种情况
- 在该时刻进入大厅后,直接进入房间,此时前方队列中至少有 \(k\) 个比我大的人
- 在前方时刻进入大厅,现在进入房间,此时前方队列中恰有 \(k-1\) 个比我大的人
- 具体实现可以预处理出 \(f[i][j][k]\) (表示前 \(i\) 大里选了 \(j\) 个元素,其中第 \(k\) 个元素一定选的方案的和)
做法2
- 房间里留下的始终为前缀前 \(k\) 大值。
- 期望可加性,独立考虑 \(i\) 在 \(j\) 前出去的概率即可。
- 对于 \(t_i<t_j\),如果 \(i\) 在 \(j\) 前面,一定 \(i\) 先出,否则枚举 \(i\) 的位置 \(pos_i\),\(j\) 的位置在 \([1,pos_i-1]\) 中,而且 \(t_j\) 是第一个位置到第 \(pos_i-1\) 个位置中的前 \(k-1\) 大。
I. Modulo-magic squares
J. Count the Sequences
upsolved.
先 \(n:=n-1\),容斥有。
\(Ans = \sum_{S} (-1)^{|S|}\binom{n+m-\sum_{i∈S}(b^i-c+1)}{m}\)
按集合大小分类,枚举大小 \(k\),求出 \(F(k)=\sum_{|S|=k}(-1)^{|S|}\binom{n+m-(c-1)|S|-\sum_{i∈S}(b^i)}{m}\),\(Ans =\sum_{k=0}^{m}F(k)\),接下来考虑 \(F(k)\) 的求解。
令 \(n+m+(c-1)|S|=A\)
\(F(k)=\sum_{|S|=k}(-1)^{|S|}\binom{A-\sum_{i∈S}(b^i)}{m}\),拆一下组合数
再令 \(B=A-\sum_{i∈S}(b^i)\)
\(F(k)=\frac{\sum_{|S|=k 且 \sum_{i∈S}b^i\leq A} B(B-1)..(B-(m-1))}{m!*(-1)^k}\)
哇!我想睡觉了,不想做这种恐怖题了。
\(B(B-1)..(B-(m-1))\) 是个关于 \(\sum_{i∈S}(b^i)\) 的多项式,求之,求出对于满足 \(|S|=k 且 \sum_{i∈S}b^i\leq A\) 这个卜条件求出的所有 \(S\) 求出 \([\sum_{i∈S}(b^i)]^x\) 就 win 了啊。
\(f[i][j][x]\) 表示考虑 \(\{1,2,...,i\}\) 的 size 为 \(j\) 的子集 \(S\),\([\sum_{i∈S}(b^i)]^x\) 之和,蓄力完毕,\(A,\sum_{i∈S}(b^i)\) 看成 \(b\) 进制数后枚举 LCP 长度!
\(f[i][j][x]=f[i-1][j][x]+\sum_{t=0}^{x}\binom{x}{t}b^{it}f[i-1][j-1][x-t]\)
解决这种问题得小心架势条爆炸。
summary and replay
- RDC: 划水战术执行的非常到位,全场共 0 次触碰键盘,想题边都沾不着。