CF773F [* hard]
给定 \(N\) 和 \(W\),求解有多少个严格单调递增序列 \(a\) 满足 \(a_n\le W\),长度 \(\le N\) 且满足如下约束:
设 \(g\) 为 \(\gcd(a_1, a_2...a_n)\),\(x\) 为 \(a_n/g-n\),\(y\) 为 \(a_n-n\),\(z\) 为 \(a_n/g\),则有 \(x\) 与 \(y\) 和 \(z\) 在模 \(2\) 意义下不相同。
\(\rm Sol:\)
不难注意到 \(a_n\) 为偶数,\(g\) 为 \(2^k\),此时 \(a_n/g\) 为奇数,同时 \(n\) 为奇数。
不妨暴力枚举 \(2^k\),保证 \(a_n\) 可以表示为 \((2m+1)\times 2^k\),同时前 \(1\sim n-1\) 个位置每个位置的权值都应该小于 \(2m+1\),但是实际上应该是 \(k\times 2^k\)
注意到系数至少为 \(1\),所以首项被强制设为 \(1\)
考虑这个序列的差分数组,我们在开头补一个 \(1\),那么接下来有 \(n-1\) 个位置,权值上界为 \(2m\),相当于在 \(n-1\) 个位置中分配至多 \(2m\) 个权值,同时由于需要严格单调递增,我们可以先给每个位置分配 \(1\) 的权值,对于剩余的,我们等价于给 \(n\) 个位置分配 \(2m+1-n\) 个权值,可以考虑 Dp,\(f_{i,j}=\sum_{k\le j} f_{i-1,k}\),于是得到计算为 \(\frac{1}{(1-x)^{n}}[x^{2m+1-n}]\),即 \(\binom{2m}{2m+1-n}\)
于是可以得到答案的计算式:
然而模数不是质数,而且非常的小,这意味着我们甚至无法得到逆元...
稍微变形一下成:
交给某些高级科技尝试了一下,发现没有办法计算,所以没办法化简,没办法直接计算,就只能递推/Dp 来解决了。。。
然而不好做,我们还是回来吧,考虑所求实际上是这个:
长度为 \(n\) 的序列,其长度为奇数,单调递增,每个元素的取值在 \([1,m]\) 中取,最后一个元素大小为奇数。
其实是在 \([1,m]\) 中选出 \(n\) 个元素,且最大值为奇数的方案数。
设 \(f(a,0/1)\) 为在 \([1,a]\) 中选数,最大值为奇/偶的方案数的生成函数。请注意需要保证 \(x^0\) 前面系数为 \(0\)
考虑通过倍增得到 \(m\):
表示可能都在 \([1,a]\) 内,可能都在 \([a+1,2a]\) 内,可能由跨越部分组成。
没了。