CF R 737
题目评分:800-1100-1700-2200-2800
AB 是水题,不写了不写了。
C Moamen and XOR
套路题,这种东西直接按位考虑。
从高到低考虑每一位,分类讨论一下:
如果我们让当前位的 \(\And\) 值 \(>\oplus\) 值,那么只有在 \(n\) 为偶数的时候才能成立,且只有一种方法,然后假设现在是第 \(k\) 位,剩下的 \((k-1)n\) 位可以乱取共 \(2^{(k-1)n}\) 方法。
如果我们让当前位的 \(\And\) 值 \(=\oplus\) 值,按奇偶性讨论:
若 \(n\) 为奇数:\(\And\) 值 \(=1\) 时,可以使 \(\oplus\) 值也 \(=1\),只有一种方案;\(\And\) 值 \(=0\) 时,想要使 \(\oplus\) 值等于 \(1\),有 \(\displaystyle {\sum^n_{i=0\And i\equiv 0 \pmod 2}\binom{n}{i}}\) 种方案。发现这两个方案的总种数可以预处理。
若 \(n\) 为偶数:\(\And\) 值不能 \(=1\),那么只有 \(\And\) 值 \(=0\) 的情况,那么类似上述处理,有 \(\displaystyle{\sum^{n-2}_{i=0\And i\equiv 0 \pmod 2}\binom{n}{i}}\) 种方案,同样可以预处理。
直接暴力做即可,时间复杂度 \(O(t(k+n))\)。
D Ezzat and Grid
设 \(f_i\) 表示强势保留第 \(i\) 行,最多保留的行数,那么转移方程为:
\[\displaystyle f_i=\max^{i-1}_{j=1} c(i,j)(f_j+1) \]其中 \(c(i,j)\) 表示第 \(i\) 行与第 \(j\) 行能否拼在一起。
朴素转移是 \(O(n^3)\) 的,能过有鬼了。
考虑线段树优化,对于第 \(i\) 行中被染黑的每一段,做一遍区间对 \(f_i\) 取 \(\max\),而当转移第 \(i\) 行的时候,对染黑的每一段取 \(\max\)。
这样,我们用线段树将 dp 条件与转移合在了一起,实现上需要一棵支持区间取 \(\max\),区间查 \(\max\) 的线段树,时间复杂度 \(O(n\log n)\)。
E Assiut Chess
趣题,如果下次课件我还做趣题选讲的话可能会选进来