UOJ NOI Round #2 Day1
【UNR #2】UOJ拯救计划
设恰好用 (i) 个颜色的染色方案为 (f_i),那么我们知道答案可以表示成:(sum_{i=1}^kdbinom{k}{i} imes i! imes f_i),然后由于我们只要计算 (\%6) 的值,不难发现 (dbinom{k}{i} imes i!) 在 (i>2) 时均为 (0),因此我们只需要求出 (i=1) 和 (i=2) 的答案即可。两种情况都比较显然,对于第二种判一下二分图即可。
【UNR #2】排兵布阵
先考虑只有 (1356) 怎么做,可以直接 (kdt),但是 (kdt) 显然不能支持什么给横坐标为 (x) 的值加上 (p) 之类的阴间操作,于是就有了一个神仙做法:
假设每一列的关键点数量为 (d_x),每一行为 (d_y),把每个关键点想象成一条 (x o y) 的边,如果 (d_x>d_y) 则连边 (y o x),否则连边 (x o y),根据三元环计数的结论,我们知道每个点出度不会超过 (sqrt{N})。
对于一个关键点,如果他所代表的边是 (x o y) 的,则称这个点是第 (x) 列的关键点,否则称这个点是第 (y) 行的关键点,那么每行每列的关键点数量都是 (sqrt{N}) 级别的。于是我们的主要思路就是关键点暴力,非关键点打标记。(实际上没太懂具体怎么操作的,就咕了)
【UNR #2】黎明前的巧克力
我们考虑也就是要求出一个集合,使它异或和为(0),然后这个集合的贡献就是(2^{size})
由于每个数只能选一次,不难发现我们最后的结果就是将((1+2 imes x^{a_i}))用( m xor)卷积乘在一起,最后(x^0)上的系数也就是我们的答案。
如果直接将这些级数直接暴力卷在一起,复杂度是(O(NMlogM)),其中(M=max(a_i)),考虑怎么优化这个过程。
我们发现,对于任意的(a_i),我们将((1+2 imes x^{a_i}))取(FWT_{xor})操作之后,得到的点值只有两种权值。
证明:我们知道,(FWT)的定义式实际上是(FWT_i=sum_{j=0}^Mc(i, j) imes f(j))。
我们知道异或卷积的矩阵只有两者都为(1)的时候才有(-1)的贡献,否则贡献为(1)。所以我们可以将定义式改写成:(FWT_i=sum_{j=0}^M(-1)^{count(i&j)} imes f(j))。
考虑到(f(j))只有在(0, a_i)处有取值,又由于(0)处((-1)^{count(i&j)})一定为(1),所以我们的权值只有可能是(1+2)或者(1-2),也就是只有可能是(3, -1)。
所以,我们将原(FWT)的所有点值乘起来之后,每个系数都会变成((-1)^x imes 3^{n-x}),只需要在对其进行一次(IFWT)操作即可。
考虑到(FWT)实际上是一个线性变换,满足(sum FWT(F(x))=FWT(sum F(x)))。我们可以用一次操作求出(FWT(sum F(x))),也就是我们可以很方便的得到(sum FWT(F(x)))。考虑到我们要求出的(sum FWT(F(x)))的点值实际上是(x imes (-1)+(n-x) imes 3),发现这是一个一元一次方程,于是我们就可以求出(x),从而求出(prod FWT(F(x)))了
UOJ NOI Round #2 Day2
【UNR #2】积劳成疾
假设整个序列的最大值在位置 (p),那么会有若干个区间的答案为 (p),然后抛开这些区间,剩余部分会变成两个独立的部分,这已经提示我们采用区间 (dp) 来解决问题。
设 (f_{i, j}) 表示长度为 (i) 的区间,劳累度最大值恰好为 (j) 的所有方案的乘积之和,(s_{i, j}) 为 (f_{i, j}) 的前缀和。那么枚举最大值的出现位置 (k),假设最大值可以覆盖 (x) 个区间,那么则有转移:
复杂度 (O(N^3))。
【UNR #2】梦中的题面
先考虑 (c=1) 的情况,将 (n) 拆分成 (b) 进制数,从小到大考虑每一位,对于第 (x) 小的位置,有 (m-x+1) 个数可以任意填,其余 (x) 位只能填 (0)。先设 (f_{i, j}) 表示有 (i) 个数,取值范围在 ([0, b-1]),相加和为 (j) 的方案数,这个可以通过简单 (dp) 算出。
再设 (dp_{i, j}) 表示考虑到第 (i) 位,前 (i) 小位进了多少位。其中,如果前 (i) 小位填入的值大于 (n),那么再算进一位。然后直接 (dp) 即可(也可以加一维 (0/1) 达到同样的效果)。
对于 (c e 1) 的情况,就是有些位置取到了 (b^x),这些数其他位是不能随便取的,只要知道数量就可以了。于是新加一维表示数量即可,复杂度 (O(m^3b^2))。
【UNR #2】解开尘封的仪式
提答题,咕了。