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\) 的个数为

\[\begin{aligned} &\sum_{i=1}^n[i为奇数][h(i)=h']\\ &=\sum_{i=1}^n[i为奇数][h'-1\le \log_2 (n/i)< h']\\ &=\sum_{i=1}^n[i为奇数][n/2^{h'}<i\le n/2^{h'-1}]\\ &=\lceil\lfloor n/2^{h'-1}\rfloor/2\rceil-\lceil\lfloor n/2^{h'}\rfloor/2\rceil \end{aligned} \]

由二项式定理 \((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}\)

模仿付公主的背包的思路:

\[\begin{aligned} &[x^n]\exp\ln\prod_{i=a}^\infin\frac1{1-x^i}\\ &=[x^n]\exp\sum_{i=a}^\infin-\ln(1-x^i)\\ &=[x^n]\exp\sum_{i=a}^\infin\sum_{j=1}^\infin\frac{x^{ij}}j\\ &=[x^n]\exp\sum_{j=1}^\infin\frac{1}j\sum_{i=a}^\infin x^{ij}\\ \end{aligned} \]

然后直接上多项式 \(\exp\) 就做完了。

T4

很简单的字符串题~

题解使用了十分罕见的 exKMP,其实用 SA 也能跑过去吧(大概

posted @ 2024-11-26 16:06  justalearner  阅读(18)  评论(0)    收藏  举报