XXI Open Cup named after E.V. Pankratiev. Grand Prix of Belarus
A. Belarusian State University
需要深入理解FWT的本质。
FWT的分治中,是拆开某一位去分治的。
对于每一位的处理,实际上就是相当于处理一种运算关系。
而我们的目标是处理 $2^4=16$ 种二元0/1运算,我们会的只有 $or,and,xor$ 三种。
而我们可以将这个运算转换成取反,固定某个变量的值,以及上面三种常规操作的若干种,从而解决某一位的问题。
分类讨论 $16$ 种情况即可。。
时间复杂度 $O(2^nn)$。
B. Beautiful Sequence Unraveling
C. Brave Seekers of Unicorns
DP,设 $f_i$ 表示序列最后一位为 $i$ 的总方案数。设 $s_i$ 为其前缀和,最终答案为 $s_n$。考虑用所有的方案数减去不合法的,也就是:
$f_i=s_{i-1}-\sum_{k<k\oplus i<i}f_k$。
而对于所有的 $k<k\oplus i<i$,$k$ 的规律是 $k$ 的最高位比 $i$ 小,且该最高位中 $i$ 这一位为 $1$。
然后就是 $O(\log n)$ 个区间和了。
时间复杂度 $O(n\log n)$。
D. Bank Security Unification
设 $f_i$ 表示考虑前 $i$ 个,其中第 $i$ 个必选的最大值,有 $f_i=\max {f_j+a_j& a_i}$。
优化,我们只需要对于每一位考虑前边的出现过这一位为 $1$ 的最大下标即可。
- 证明: 设 $a_i&a_j$ 的最大位为 $k$,对于任一更小的 $j’$,且满足 $a_i& a_{j’}$ 最大位为第 $k$ 位,那么显然有 $a_{j’}& a_{i}<2^{k+1}\le a_{j’}& a_j+a_j& a_i$。说明 $i,j’$ 中间多选一个 $j$ 会比较优。
时间复杂度 $O(n\log C)$。
E. Brief Statements Union
拆位后,变成 $01$ 序列。$and=1$ 的限制相当于表示 $[l_i,r_i]$ 全是 $1$;$and=0$ 的限制表示 $[l_i,r_i]$ 不全为 $1$。
假设 $and=1$ 的都选,差分后,求出有多少个 $and=0$ 的区间全是 $1$。
如果是 $0$ 个,随便删哪个线段均可;
如果是 $1$ 个,可以删掉这个 $and=0$ 的区间;
如果 $>1$ 个,则不能删掉 $and=0$ 的区间;
下面考虑删掉任意一个 $and=1$ 的区间后合法的情况。那么删掉这个区间后合法当且仅当删掉后能满足所有 $and=0$ 的区间的限制。
还是利用每个点被 $and=1$ 的线段覆盖次数的数组,找到所有的只被一条线段覆盖过的点就可以了。
时间复杂度 $O(n\log C)$。
F. Border Similarity Undertaking
分治,然后预处理出左右两边的最远距离,以及能遇到的一些最大值。暴力枚举,时间复杂度 $O(nm\log nm)$。
G. Biological Software Utilities
不妨设有 $2n$ 个点,如何求有完美匹配的树的个数?
首先枚举 $2n$ 个点的不同的匹配情况,答案是 $\prod_{i=1}^n(2i-1)$。
然后对于每种匹配间进行连边,每次连边有 $4$ 种情况,且需要连成一个 $n$ 个点的树,答案是 $4^{n-1}\times n^{n-2}$。
时间复杂度 $O(n)$。
H. Bytelandia States Union
对于一条路径 $(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)$,它的权值总和为 $x_n^2y_n^2-x_1^2y_1^2+\sum_{i=1}^{n-1}(x_i^2+y_i^2)$。
那么,相当于算 $\sum_{i=1}^n(x_i^2+y_i^2)$ 的最小值。
考虑每次移动,$(x^2+y^2)$ 的变化是 $\pm 2x/2y+1$ 的。
先不妨设 $x_1\le x_n$。
如果 $y_1\geq y_n$,那么显然先一直往下走,然后再往右走最优。
如果 $y_1\le y_n$,那么就从 $(x_1,y_1)$ 一直移动 $x$ 或 $y$ 中的较小值,直到他们相等,$(x_n,y_n)$ 也是如此。经过这样的操作以后,就变成从 $(x_1,x_1)$ 移动到 $(x_n,x_n)$ 了,这个很容易算出最小值。
分类讨论,$O(1)$ 计算,时间复杂度 $O(n)$。
I. Binary Supersonic Utahraptors
欺诈题,无论怎么操作,答案不会改变。
J. Burnished Security Updates
判断是否是若干连通二分图。
M. Brilliant Sequence of Umbrellas
我们若构造 $1,1\times 2,2\times 3,3\times 4\cdots$,唯一不满足的是有可能出现隔着两个不互质,比如 $2\times 3,3\times 4$。为了解决这个问题,我们暴力规定隔着两个是互质的。
于是有:$1,2,3,5,7,8,9,11,13,\cdots$,第 $i$ 个数大概是 $\frac{3}{2}i$,这样就可以了。
时间复杂度 $O(n)$。
N. Best Solution Unknown
找到区间的最大值。然后向左右两边递归,记录当前需要到达的最低分即可。
使用单调栈建立笛卡尔树,时间复杂度 $O(n)$。