2024年11月26日 总结
T1
水
T2
令 \(f(i)\) 表示令 \(i\) 属于 \(A\) 后 \(A\) 增加的数量,\(g(i)\) 表示令 \(i\) 属于 \(B\) 后 \(A\) 增加的数量,\(A\) 与 \(B\) 本质上并无区别,因此也相当于 \(i\) 属于 \(A\) 后 \(B\) 增加的数量。
不难发现答案即为 \(\prod_{1\le i\le n,i是奇数}(x^{f(i)}+x^{g(i)})\)
不难发现 \(f(i)-g(i)\in\{0,1\}\),因此分为两类相乘,记 \(C_0=\sum_{i=1}^n[f(i)=g(i)]\),\(C_1=\sum_{i=1}^n[f(i)=g(i)+1]\),\(S=\sum_{i=1}^n g_i\) 则答案为 \(x^S2^{C_0}(1+x)^{C_1}\)
记 \(h(i)=\sum_{j\ge0}[i\cdot 2^j\le n]=\sum_{j\ge0}[j\le\lfloor \log_2 (n/i)\rfloor]=\lfloor \log_2 (n/i)\rfloor+1\),则 \(f(i)=\lceil h(i)/2\rceil\),\(g(i)=\lfloor h(i)/2\rfloor\)
因此 \(C_0=\sum_{i=1}^n[h(i)为偶数],C_1=\sum_{i=1}^n[h(i)为奇数]\)
注意到不同的 \(h\) 只有 \(O(\log n)\) 个,因此可以算出来 \(C_0\),\(C_1\) 和 \(S\)。即对于一个 \(h'\),满足条件的 \(i\) 的个数为
由二项式定理 \((1+x)^{C_1}=\sum_{i=0}^{C_1}\binom{C_1}ix^i\),故 \([x^m]ANS=2^{C_0}\dbinom{C_1}{m-S}\)
10000019 是小质数,用 Lucas 定理求组合数即可。
T3
晕,读错题了,还以为 \(k\) 是给出的。
题意大概就是求 \(n\) 的分拆数的数量,满足最小的分拆在 \([x,y]\) 间。
显然可以把限制拆成「最小的分拆 \(\ge a\)」。
然后就是求这玩意 \([x^n]\prod_{i=a}^\infin \dfrac1{1-x^i}\)。
模仿付公主的背包的思路:
然后直接上多项式 \(\exp\) 就做完了。
T4
很简单的字符串题~
题解使用了十分罕见的 exKMP,其实用 SA 也能跑过去吧(大概

浙公网安备 33010602011771号