2022各省省选选解

没写题解不意味着没做,有的忘了写或者太草率了就算了。

部分前言删了。

ZJOI 树

题解

学不会的容斥。

考虑分别钦定 \(S,T\) 为两边的叶子集合,其余节点任意,则此时对应的答案为

\[f(S)g(T) \]

其中

\[f(S)=\prod_{i=2}^n\sum_{j=1}^{i-1}[j\notin S] \]

\[g(T)=\prod_{i=1}^{n-1}\sum_{j=i+1}^n[j\notin T] \\=\prod_{i=1}^{n-1}(n-|T|-\sum_{j=1}^i[j\notin T]) \]

容斥一下,答案就是

\[\sum_{S\cup T=[1,n]\cap\mathbb N}(-2)^{|S\cap T|}f(S)g(T) \]

这个 \(-2\) 比较微妙……(反向枚举集合与容斥系数相乘)

逐项枚举 \(i\in[1,n]\),记录下当前的 \(\sum_{j=1}^i[j\notin S]\)\(n-|T|-\sum_{j=1}^i[j\notin T]\) 即可。

总复杂度 \(O(n^3)\)

AHOI 排列

题解

没精力做难题,过来刷刷水题。

为了方便,我们记 \(K(n)=\max_{1\le x\le n}\omega(x)=\Theta(\frac{\log n}{\log\log n})\)

设置换

\[g=\binom{1,2,3,\ldots,n}{a_1,a_2,a_3,\ldots,a_n} \]

假设做循环分解,得

\[g=c_1c_2\cdots c_m \]

\(x\) 号元素在循环 \(c_{j(x)}\) 中。

\(c_k\) 的元素个数记为 \(|c_k|\)

\[\def\lcm{\operatorname{lcm}} f(a,b)=\begin{cases} 0&(j(a)=j(b))\\ \lcm\{|c_{j(a)}|+|c_{j(b)}|,\lcm_{k\neq j(a),k\neq j(b)}|c_k|\}&(j(a)\neq j(b)) \end{cases} \]

于是

\[\def\lcm{\operatorname{lcm}} ans=\sum_{1\le a\le n}\sum_{1\le b\le n}f(a,b) \\=\sum_{1\le a<b\le m}2|c_a||c_b|\lcm\{|c_a|+|c_b|,\lcm_{k\neq a,k\neq b}|c_k|\} \]

然后接下来通过根号分治容易得到一个根号做法,感觉跑不过去,但是还是先列出来。

假设

\[v_k=\sum_{1\le a\le m}[|c_a|=k] \]

\[S=\{a|1\le a\le n,v_a>0\} \]

\[T=\{a|1\le a\le n,v_a>1\} \]

\[\def\lcm{\operatorname{lcm}} ans=\sum_{a,b\in S,a<b}2abv_av_b\lcm\{a+b,t(a,b)\} \\+\sum_{a\in T}a^2v_a(v_a-1)\lcm\{2a,w(a)\} \]

其中

\[\def\lcm{\operatorname{lcm}} t(a,b)=\begin{cases} \lcm_{x\in S-\{a\}-\{b\}}x&(v_a=v_b=1)\\ \lcm_{x\in S-\{b\}}x&(v_a>1,v_b=1)\\ \lcm_{x\in S-\{a\}}x&(v_a=1,v_b>1)\\ \lcm_{x\in S}x&(v_a>1,v_b>1) \end{cases} \]

\[\def\lcm{\operatorname{lcm}} w(a)=\begin{cases} \lcm_{x\in S-\{a\}}x&(v_a=2)\\ \lcm_{x\in S}x&(v_a>2) \end{cases} \]

然后 \(|S|=O(\sqrt n)\),直接暴力做复杂度即为根号级别的。(可能会质因数分解多一个 \(K(n)\),变成 \(O(n\sqrt{nK(n)})\)

考虑如何继续优化。

考虑到 \(t(a,b)\)\(w(a)\) 定义时要分类讨论,为了方便,我们不妨直接定义一个可重集 \(T\)

\[v_k=\sum_{1\le a\le m}[|c_a|=k] \]

\[S=\{a|1\le a\le n,v_a>0\} \]

\[T=\{|c_k||1\le k\le m\} \]

\[\def\lcm{\operatorname{lcm}} ans=\sum_{a,b\in S,a<b}2abv_av_b\lcm\{a+b,\lcm_{x\in T-\{a,b\}}x\} \\+\sum_{a\in S}v_a(v_a-1)a^2\lcm\{2a,\lcm_{x\in T-\{a,a\}}x\} \]

接下来就是考虑如何不太暴力地计算答案了。

仍然考虑到

\[|S|=O(\sqrt n) \]

考虑暴力枚举合法的 \(a,b\) 对,最多只有 \(O(n)\) 对。

提前预处理出 \(1\sim n\) 中所有数的每个质因子及其次幂,设此幂次为 \(c(x,p)\)。这个可以在 \(O(n\log\log n)\) 内得到。

\(1\sim n\) 中每个质数 \(p\),算出其在 \(\max_{x\in T}c(x,p),2th\max_{x\in T}c(x,p),3th\max_{x\in T}c(x,p)\)

这个可以 \(O(\sqrt nK(n))\) 预处理。

然后这个 \(\operatorname{lcm}\) 部分就容易通过简单讨论在 \(O(K(n))\) 之内完成。

于是总复杂度为 \(O(\frac{n\log n}{\log\log n})\)

AHOI 山河重整

题解

EI 题.jpg。/kk

img

因为我啥也不会,所以以下全是贺的!!!1

记号约定:一个集合 \(A\) 的元素和记为 \(\sigma(A)\)

题目中限制的充要条件:

\[\forall1\le k\le n,\sigma(S\cap[1,k])\ge k \]

\(\rm Proof.\)
必要性显然。考虑怎么证充分性。
\(n=1,2\) 时显然充分,考虑 \(n>2\)
\(k=1,2\),得 \(1,2\in S\)
\(3\le k\le n\),尝试说明可行。
考虑数学归纳。
\(\sigma(S\cap[1,x])\ge k\),且 \(x\) 为最小合法解。
\(\sigma(S\cap[1,x))<k,x\in S,1\le x\le k\)
从而 \(\sigma(S\cap[1,x])<k+x\)
从而 \(a=\sigma(S\cap[1,x])-k\le x-1<k\)
由数学归纳法,容易发现 \(a\) 时可以被 \(S\cap[1,k]\) 的一个(可能为空的)真子集 \(T\) 表出,从而 \(k\) 可以由 \((S\cap[1,k])-T\) 表出。
由数学归纳法原理,充分性得证。
\(\rm QED\)

然后就容易得到 \(O(n^2)\) 的 dp。

\[f_{i,j}=(f_{i-1,j}+f_{i-1,j-i})[j\ge i] \]

然后下标和 \(n\)\(\min\) 即可 \(O(n^2)\),实现得精细可以获得 \(60\rm pts\)

接下来考虑怎么继续做。

假设 \(a_{k+1}\) 为满足 \([1,k]\cap\mathbb N\) 的子集 \(T\) 数量,使得 \(\sigma(T)=k\),且 \(\forall1\le j\le k,\sigma(T\cap[1,j])\ge j\)

则答案即为 \(2^n-\sum_{i=1}^na_i2^{n-i}\),故设 \(A(z)=\sum_ka_kz^k\)

容易有

\[\sum_ka_{k+1}z^k\prod_{j\ge k+2}(1+z^j)=\prod_{j\ge1}(1+z^j) \]

其中 \(z\) 用来标记 \(\sigma(S)\),等式的组合意义即是 \(\sum_{S\subseteq\mathbb N^+}z^{\sigma(S)}\)

写得好看点,就是

\[\sum_ka_kz^k\prod_{j>k}(1+z^j)=z\prod_{j\ge1}(1+z^j) \]

右侧直接枚举每个元素的是否选择,而左侧枚举的是第一个不可以被表示的元素。

尝试把右手式除到左边这里,但是发现由于模意义下元素不一定可逆,所以基本就是没得搞:由于不能 NTT,所以直接做也别想了。

\[\prod_{j\ge k}(1+z^j) \]

这个东西,考虑一个好一点的柿子转化。设

\[P(z,u)=\prod_j(1+uz^j) \]

\[P(z,z^k)=\prod_{j\ge k}(1+z^j) \]

故只用考虑 \([u^n]P(z,u)\) 是怎么一个关于 \(z\) 的多项式,再复合即可。

ODE 似乎不太行(模意义下不能求逆),所以考虑直接对系数递推。

\[P(z,u)=(1+u)P(z,zu) \]

\[[u^n]P(z,u)=z^{n-1}[u^{n-1}]P(z,u)+z^n[u^n]P(z,u) \]

\[[u^n]P(z,u)=\frac{z^{n-1}}{1-z^n}[u^{n-1}]P(z,u)=\prod_{j=1}^n\frac{z^{j-1}}{1-z^j} \]

\[\prod_{j\ge k}(1+z^j)=P(z,z^k)=\sum_nz^{nk}[u^n]P(z,u)=\sum_n\frac{z^{nk+n(n-1)/2}}{\prod_{1\le j\le n}1-z^j} \]

于是

\[\sum_ka_kz^k\prod_{j>k}(1+z^j) \\=\sum_ka_kz^k\sum_n\frac{z^{nk+n(n+1)/2}}{\prod_{1\le j\le n}1-z^j} \\=\sum_n\frac{z^{n(n+1)/2}}{\prod_{1\le j\le n}1-z^j}\sum_ka_kz^{k(n+1)} \\=\sum_n\frac{z^{n(n+1)/2}A(z^{n+1})}{\prod_{1\le j\le n}1-z^j} \\=\sum_{k>0}\frac{z^{k(k-1)/2}}{\prod_{1\le j<k}1-z^j}A(z^k) \\=A(z)+\sum_{k>1}\frac{z^{k(k-1)/2}}{\prod_{1\le j<k}1-z^j}A(z^k) \]

\[z\prod_{j\ge1}(1+z^j)=\sum_k\frac{z^{k(k+1)/2+1}}{\prod_{1\le j\le k}1-z^j} \]

这个东西……是不是可以倍增法呀。

假设我们现在已知 \(a_0\sim a_{n-1}\),考虑计算 \(a_n\sim a_{2n-1}\)

\[A(z)\equiv\left(\sum_k\frac{z^{k(k+1)/2+1}}{\prod_{1\le j\le k}1-z^j}\right)-\left(\sum_{k>1}\frac{z^{k(k-1)/2}}{\prod_{1\le j<k}1-z^j}A(z^k)\right)\pmod{z^{2n}} \]

容易发现等式右侧只会用到 \(a_0\sim a_{n-1}\),于是便可以将 \(a_n\sim a_{2n-1}\) 一并解出。

显然 \(k\le2\sqrt n\),然后直接做就好了。

单轮复杂度 \(O(n\sqrt n)\),由主定理,总复杂度为 \(O(n\sqrt n)\)

SDOI/SXOI 整数序列

题解

不懂啊,为啥都喜欢出根号题。

感觉不可 polylog,考虑根号做法。

考虑对每个颜色出现次数进行根号分治。

设阈值 \(T\),称出现多于 \(T\) 次的颜色为大块,少于 \(T\) 次的颜色为小块。

显然大块的出现次数不会超过 \(\frac nT\) 次。

考虑计算答案。

先考虑计算大块和大块的答案。

假设长度分别是 \(a\)\(b\),则只用在 \(O(a+b)\) 时间内解决,复杂度即为 \(O(\frac{n^2}T)\)

首先可以直接做归并,然后做前缀和,则只用找到前缀 \(c\) 和相同、\(b\) 差值最大的一组即可。

这个显然可以在 \(O(a+b)\) 之内解决。

于是就可以在不超过 \(O(\frac{n^2}T)\) 内预处理所有大块间答案。

对于小块之间的答案,我们可以对每个询问分别做一次,复杂度即为 \(O(mT)\)

接下来考虑大块和小块间的答案。

考虑咋做。

其实对当前询问有效的大块的点的区间个数似乎很少,直接把这些部分取出来做一次暴力即可。

问题是怎么找。

先考虑向左找,从右往左依次向左扫描,保持权值非负(\(1\)\(-1\) 求和),向右同理;同时把取到负值的点也加上,方便处理。

最后把对应点归并去重即可。

\(T=\sqrt n\),总复杂度 \(O(n\sqrt n)\)

SDOI/SXOI 进制转换

题解

不懂 OI 了,为啥都会根号题。

设阈值 \(B\),使得 \(t=\lfloor\frac n{3^B}\rfloor\)\(m=3^Bt\)

\[ans=\sum_{i=1}^nx^iy^{a(i)}z^{b(i)} \\=-1+\sum_{i=0}^{m-1}x^iy^{a(i)}z^{b(i)}+\sum_{i=m}^nx^iy^{a(i)}z^{b(i)} \]

后一个部分可以 \(O(3^B+\log n)\) 暴力计算,考虑前一部分。

\[\sum_{i=0}^{m-1}x^iy^{a(i)}z^{b(i)} \\=\sum_{i=0}^{t-1}\sum_{j=0}^{3^B-1}x^{i3^B+j}y^{a(i3^B+j)}z^{b(i3^B+j)} \\=\sum_{i=0}^{t-1}x^{i3^B}z^{b(i)}\sum_{j=0}^{3^B-1}x^jz^{b(j)}y^{a(i3^B+j)} \]

乍一看不好做。

其实考虑到,设 \(2^{S-1}\le 3^B<2^S\),则

\[\def\lf{\left\lfloor}\def\rf{\right\rfloor} \lf\frac{i3^B+j}{2^S}\rf\in\{\lf\frac{i3^B}{2^S}\rf,\lf\frac{i3^B}{2^S}\rf+1\} \]

于是

\[\def\lf{\left\lfloor}\def\rf{\right\rfloor} \sum_{i=0}^{m-1}x^iy^{a(i)}z^{b(i)} \\=\sum_{i=0}^{t-1}x^{i3^B}z^{b(i)}\sum_{j=0}^{3^B-1}x^jz^{b(j)}y^{a(\lfloor\frac{i3^B+j}{2^S}\rfloor)+a((i3^B+j)\bmod2^S)} \\=\sum_{i=0}^{t-1}x^{i3^B}z^{b(i)}\sum_{j=0}^{3^B-1}x^jz^{b(j)}y^{a(\lfloor\frac{i3^B}{2^S}\rfloor+[ \lfloor\frac{i3^B+j}{2^S}\rfloor\not\equiv\lfloor\frac{i3^B}{2^S}\rfloor\pmod2])+a((i3^B+j)\bmod2^S)} \]

\(f_k=x^{k3^B}z^{b(k)}\)\(g_k=x^kz^{b(k)}\),则即

\[\def\lf{\left\lfloor}\def\rf{\right\rfloor} \sum_{i=0}^{m-1}x^iy^{a(i)}z^{b(i)} \\=\sum_{i=0}^{t-1}\sum_{j=0}^{3^B-1}f_ig_jy^{a(\lfloor\frac{i3^B}{2^S}\rfloor+[ \lfloor\frac{i3^B+j}{2^S}\rfloor\not\equiv\lfloor\frac{i3^B}{2^S}\rfloor\pmod2])+a((i3^B+j)\bmod2^S)} \\=\sum_{k=0}^{2^S-1}y^{a(k)}\sum_{i=0}^{t-1}\sum_{j=0}^{3^B-1}f_ig_jy^{a(\lfloor\frac{i3^B}{2^S}\rfloor+[\lfloor\frac{i3^B+j}{2^S}\rfloor\not\equiv\lfloor\frac{i3^B}{2^S}\rfloor\pmod2])}[i3^B+j\equiv k\pmod{2^S}] \]

\[\def\lf{\left\lfloor}\def\rf{\right\rfloor} h_{o,p,k}=\sum_{i=0}^{t-1}[i3^B\equiv k\pmod{2^{S+1}}][\lf\frac{i3^B}{2^S}\rf\bmod2=o]f_iy^{a(\lfloor\frac{i3^B}{2^S}\rfloor+p)} \]

其中 \(o,p\in\{0,1\}\)

\[\def\lf{\left\lfloor}\def\rf{\right\rfloor} \sum_{i=0}^{m-1}x^iy^{a(i)}z^{b(i)} \\=\sum_{k=0}^{2^S-1}y^{a(k)}\sum_{i=0}^{2^{S+1}-1}\sum_{j=0}^{3^B-1}(h_{0,0,i}+h_{1,1,i})g_j[i+j\equiv k\pmod{2^{S+1}}] \\+\sum_{k=0}^{2^S-1}y^{a(k)}\sum_{i=0}^{2^{S+1}-1}\sum_{j=0}^{3^B-1}(h_{0,1,i}+h_{1,0,i})g_j[i+j\equiv k+2^S\pmod{2^{S+1}}] \]

直接做两次卷积即可。

平衡一下复杂度,即为 \(O(\sqrt{n\log n})\)

SDOI/SXOI 小 N 的独立集

题解

考虑 dp 套 dp。

假设 \(p\) 子树中,答案为 \(x\),不选择 \(p\) 时答案为 \(y\),这样的方案数为 \(f_{p,x,y}\)

\[y_p=\sum_sx_s \]

\[x_p=\max\{v_p+\sum_s y_s,\sum_s x_s\} \]

考虑 \(x_p\)\(y_p\) 的差值,则

\[d_p=x_p-y_p=\max\{v_p+\sum_s(y_s-x_s),0\}\le v_p\le k \]

因此只用将 \(y_p\)\(d_p\) 记入状态,则

\[y_p=\sum_sy_s+d_s \]

\[d_p=\max\{v_p-\sum_sd_s,0\} \]

记为 \(f_{p,d,y}\),直接树上背包转移处理即可。

复杂度应该是 \(O(n^2k^4)\) 左右?

SDOI/SXOI 多边形

题解

膜拜国际特级大师 EntropyIncreaser,出毒瘤计数题大杀四方!

考虑如果 \(a=1\),那么结果就是卡特兰数 \(C_{n-2}\),即 \(n\) 个边的普通多边形三角剖分数目。

考虑枚举每条边内最终有多少点被使用,假设是 \(b-1\) 个点,显然 \(1\le b\le a\),且有 \(\binom{a-1}{b-1}\) 种选法。

问题是这样可能会出现某条边上两个点相连的情况,要容斥掉。

考虑怎么容斥。

考虑到每条边上有 \(b\) 条线段可以参与决策,假设把相应的连边取出,则为一些二叉树的结构。

|-----| |-------|
|---|-| |---|---|
|-|-|-|-|-|-|-|-|

把这里的每条边拉出即可得到在一条线段上的一个决策。

考虑对此导出容斥系数。

手玩并归纳,容易分析出结果为,只要出现长度大于 \(2\) 的线段,容斥系数即为 \(0\);否则,容斥系数为 \((-1)^{\text{长度为 }2\text{ 的线段个数}}\)

因此,我们假设枚举其中若干线段,则

\[g_b(z)=[u^b]\sum_kz^k(u-u^2)^k=\sum_k(-1)^{b-k}\binom k{b-k}z^k \]

而答案即为

\[\sum_kC_{k-2}[z^k]\prod_j\sum_b\binom{a_j-1}{b-1}g_b(z) \]

于是

\[h_a(z)=\sum_b\binom{a-1}{b-1}g_b(z)=\sum_kz^k\sum_b(-1)^{b-k}\binom k{b-k}\binom{a-1}{b-1} \]

考虑怎么求这种东西。

经典的困难题,但仍可一试。

考虑定义

\[g(z,u)=\sum_kz^k(u-u^2)^k=\frac1{1-zu+zu^2}=\frac A{1-\alpha u}+\frac B{1-\beta u} \]

(具体是啥就不写了,太丑)

从而

\[g_b(z)=[u^b]g(z,u) \]

\[h_a(z)=A\alpha(1+\alpha)^{a-1}+B\beta(1+\beta)^{a-1} \\=\frac1{2^a}(z((z+2+\sqrt{z^2-4z})^{a-1}+(z+2-\sqrt{z^2-4z})^{a-1}) \\+\frac{z^2-2z}{\sqrt{z^2-4z}}((z+2+\sqrt{z^2-4z})^{a-1}-(z+2-\sqrt{z^2-4z})^{a-1})) \]

总复杂度 \(O(n\log^2n)\)

SNOI 军队

题解

开始以为 \(1\) 操作 \(l=1,r=n\),按第四分块的做法写了个根号分治……

现在可就不是了,考虑采取最初分块的技巧,进行序列分块。

对每一块,用带权并查集维护每个元素,同时记录每个节点的 \(siz\),直接操作即可。

简单说来,设块长为 \(T\),我们离线下来逐块处理,按照如下操作维护:

  1. 对整块,直接合并 \(x,y\) 的根,带 \(0\) 权,修改 \(siz\);对散块,暴力修改然后重构。
  2. 对整块,直接计算对整块答案的贡献,并且重新拉一个根节点;对散块,直接暴力修改然后重构。
  3. 对整块,直接回答整块答案;对散块,直接暴力重构,然后顺带逐个询问。

由于每次涉及到散块时直接重构了整个结构,并查集没有进行查询操作,单次操作是均摊 \(O(1)\) 的;重构复杂度是 \(O(\text{至上次重构的操作次数}+T)\) 的,也就是单次操作总复杂度均摊 \(O(\frac nT+T)\)

因此,取 \(T=\sqrt n\),总复杂度 \(O(n+q\sqrt n)\),空间复杂度 \(O(n+q)\),十分优秀。

(认为 \(n,c\) 同阶)

SNOI 倍增

题解

思路清奇的题目。被吓到了。

首先容易发现 \(n=2,B=3k-1\) 的很好构造:

\[\begin{matrix}\hline\dfrac{B-2}3&\dfrac{2B-1}3\end{matrix} \]

然后发现 \(n=3\) 时,这个可以变成

\[\begin{matrix}\hline\dfrac{B-2}3&B-1&\dfrac{2B-1}3\end{matrix} \]

然后发现 \(n\ge2\) 时,这个可以变成

\[\begin{matrix}\hline\dfrac{B-2}3&B-1&B-1&\cdots&B-1&\dfrac{2B-1}3\end{matrix} \]

似乎是在一组合法解中插了很多 \(B-1\)

事实上,只要构造出一组 \(n\) 最小的合法解,我们总可以在其中某个进位处(必定有进位吧)狂插 \(B-1\),从而实现解决所有情况。

然后问题就是找到这组合法解……

我不会啊,这玩意怎么构造。

然后你点开官方题解一看:

通过打表观察不难猜测,最小解 \(p\) 可能非常小。

基于这样的猜测,可以从小到大检查每个最小解 \(p\),考虑答案排列中的每个环,对于单个环的情况,不难提出一个 \(O(2^pB)\) 的做法,即枚举起始元素和按环上顺序枚举每个元素时,该元素从排列中原始位置的前一位处获得的进位情况。

真就爆搜是吧。

但是看不懂标答是怎么搜的,考虑自己想贺题解。

不妨考虑枚举最小解 \(p\),然后枚举变化的排列,枚举进位串,每个环做高斯消元,判断合法性。

然后就对跑太慢的几个打打表,show show way,就完了。嗯。

SNOI 数位

题解

不懂了,什么高级的 dp 题目。

不妨称 \(B=10\)

naive 二项式反演并数位 dp 时 \(k\) 的次数太高,过不去。

考虑一个数 \(m\) 被统计的次数。

\[[z^m]\left(\sum_{i=L}^Rz^i\right)^k \\=[z^m]\left(\frac{z^L-z^{R+1}}{1-z}\right)^k \\=[z^{m-kL}]\left(\frac{1-z^{R-L+1}}{1-z}\right)^k \\=\sum_t(-1)^{t}\binom kt[z^{m-kL-t(R-L+1)}]\left(\frac1{1-z}\right)^k \\=\sum_t[m\ge kL+t(R-L+1)](-1)^{t}\binom kt\binom{m-kL-t(R-L+1)+k-1}{k-1} \\=\sum_t[m\ge kL+t(R-L+1)]\frac{(-1)^{t}}{(k-1)!}\binom kt\prod_{i=1}^{k-1}(m-kL-t(R-L+1)+i) \]

则答案即

\[\sum_{m\le kR}[m\text{ 除首若干位 0 外各位不增}]v_m \\=\sum_{m<k(R+1)}[m\text{ 除首若干位 0 外各位不增}]v_m \]

\(v_m\) 视作若干函数的叠加,分开统计每个 \(t\) 的贡献,则只用考虑

(设 \(A=kL+t(R-L+1),B=k(R+1)\)

\[\sum_{A\le m<B}[m\text{ 除首若干位 0 外各位不增}]\prod_{i=1}^{k-1}(m-A+i) \]

这种形式的话……

\[\sum_{A\le m<B}[m\text{ 除首若干位 0 外各位不增}]\sum_{i=0}^{k-1}f_im^i \\=\sum_{i=0}^{k-1}f_i\sum_{A\le m<B}[m\text{ 除首若干位 0 外各位不增}]m^i \]

只用解决 \(\forall q\in[0,k-1]\)

\[v_q=\sum_{m<U}[m\text{ 除首若干位 0 外各位不增}]m^q \]

这个显然可以数位 dp。

每个 \(U\) 做 dp,得到对应解的复杂度是 \(O(Bk^2\log v)\) 的,做 \(k+1\) 轮即为 \(O(Bk^3\log v)\)

总复杂度 \(O(Bk^3\log v)\),可以通过。

加一点常数优化后可以跑得更快(利用 unsigned long long 值域分批取模),在 loj 上为 \(400{\rm ms}\) 左右。

posted @ 2023-01-13 21:38  myee  阅读(105)  评论(0编辑  收藏  举报