做题记录 25.4.17

比赛

NFLS #18107. Rikka with Lowbit

打表可知操作不会改变期望,因此相当于求区间和

时间复杂度 \(O(\sum (n+q))\)

代码

NFLS #P18110. Rikka with Prefix Sum

显然区间加操作对询问的贡献独立

把每个操作 \(1\) 拆为两个后缀加,然后考虑每个后缀加 \((p,v)\) 对询问 \((L,R)\) 的贡献,设两者之间进行了 \(k\) 次前缀和操作

易得贡献为

\[\sum_{x=\max(0,L-p)}^{R-p}\binom{x+k}k \]

问题转化为求形如 \(\sum_{i=L}^R \binom{i+k}k\) 的式子

特判 \(L> R\) 的情况

由于 \(\sum_{i=0}^n \binom{i+k}i=\binom{k+n+1}n\),容易 \(O(1)\) 计算贡献

时间复杂度 \(O(\sum qw)\),其中 \(w\) 为询问的数量

代码

NFLS #18111. Rikka with Equation

考虑对于一个 \(a_{1\sim n}\) 如何计算 \(x_{1\sim n}\;(\vec a\cdot \vec x\equiv 0\pmod m)\) 的数量

\(x\) 一共有 \(m^n\) 种,令 \(d=\gcd(m,\gcd \{a\})\),根据裴蜀定理 \((\vec a\cdot \vec x)\bmod m\) 取值的集合为 \(\{dk\mid k\in\mathbb N,dk<m\}\),显然其中每个数取到的次数都是相同的

因此取到其中 \(0\) 的数量为 \(\frac{m^n}{\frac md}=m^{n-1}d\)

即合法的 \(x\) 的数量为 \(m^{n-1}d\)

因此原问题转化为对于每个 \(1\le m\le M\),求出

\[r_m=\sum_{A\subseteq B} m^{|A|-1}\gcd(m,\gcd\{A\}) \]

其中 \(\subseteq\) 表示非空子序列

\(c_v\)\(A\)\(v\) 的倍数的数量

对于固定的 \(m\)\(d\mid \gcd(m,\gcd\{A\})\)(满足 \(d\mid m\))的 \(A\)\(m^{|A|-1}\) 之和为

\[\begin{aligned} &\sum_{s=1}^{c_d} \binom{c_d}s m^{s-1}\\ =&\frac 1m\left(\sum_{s=0}^{c_d} \binom{c_d}s m^s-1\right)\\ =&\frac 1m((m+1)^{c_d}-1)\\ \end{aligned}\]

其中 \(s\) 枚举了 \(|A|\)

因此

\[r_m=\sum_{d\mid m}\frac 1m((m+1)^{c_d}-1)\times \varphi(d) \]

直接计算即可,时间复杂度 \(O(\sum M\log M\log n)\)

代码

参考

NFLS #18114. Rikka with Ants

答案为无穷大当且仅当 \(\frac ab=\frac cd\),特判即可

假定 \(\frac ab<\frac cd\),则答案为

\[\sum_{x\ge 1}\max\left(0,\left\lfloor\frac abx\right\rfloor-\left\lfloor\frac cd(x-1)\right\rfloor+1\right) \]

由于

\[\forall x\in\mathbb R,y\in\mathbb R\;(\lfloor x-y\rfloor\le \lfloor x\rfloor-\lfloor y\rfloor\le\lceil x-y\rceil) \]

因此当 \(\frac abx-\frac cd(x-1)+1\ge 0\) 时必有 \(\left\lfloor\frac abx\right\rfloor-\left\lfloor\frac cd(x-1)\right\rfloor+1\ge 0\),当 \(\frac abx-\frac cd(x-1)+1<0\) 时必有 \(\left\lfloor\frac abx\right\rfloor-\left\lfloor\frac cd(x-1)\right\rfloor+1\le 0\)

\(lm=\lfloor\frac{bc+bd}{bc-ad}\rfloor\) 表示 \(\frac abx-\frac cd(x-1)+1=0\) 的根,则答案为

\[\begin{aligned} &\sum_{x=1}^{lm}\left(\left\lfloor\frac abx\right\rfloor-\left\lfloor\frac cd(x-1)\right\rfloor+1\right)\\ =&\sum_{x=1}^{lm}\left\lfloor\frac {ax+b}b\right\rfloor-\sum_{x=0}^{lm-1}\left\lfloor\frac {cx}d\right\rfloor\\ \end{aligned}\]

前后都可类欧解决

时间复杂度 \(O(\sum \log(a+b+c+d))\)

代码

NFLS #18116. Rikka with Nickname

每次找到 \(\text{lcp}(s,t)\),然后把 \(t\) 剩余部分接到后面最优

时间复杂度 \(O(\sum |s_i|\log\sum |s_i|)\)

代码 \(\text{by Fyx}\)

NFLS #18112. Rikka with Line Graph

答案为

\[\frac 12\sum_{1\le a<b\le n}\sum_{1\le c<d\le n} (w(a,b)+w(c,d)+\min(dis(a,c),dis(a,d),dis(b,c),dis(b,d))) \]

其中 \(w(u,v)\) 表示边权,\(dis\) 为原图中的距离

考虑如何计算

\[\sum_{1\le a<b\le n}\sum_{1\le c<d\le n} \min(dis(a,c),dis(a,d),dis(b,c),dis(b,d)) \]

枚举 \(a,b\),考虑如何计算 \(\sum_{1\le c<d\le n} \min(dis(a,c),dis(a,d),dis(b,c),dis(b,d))\)

\(s_i=\min(dis(i,a),dis(i,b))\),则上式等于

\[\sum_{1\le c<d\le n} \min(s_c,s_d) \]

\(s\) 排序后扫描可做到 \(O(n\log n)\) 处理一对 \((a,b)\),预处理 \(dis(i,a)\)\(dis(i,b)\) 的排序结果后归并可做到 \(O(n)\)

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

代码 \(\text{by Fyx}\)

NFLS #18115. Rikka with Zombies

考虑计算所有结点都不安全的方案数

\(dp_{i,j}\) 表示只考虑子树 \(i\),能到达 \(i\) 的僵尸中,能力最大的僵尸的能力排名为 \(j\) 的方案数

前缀和优化可做到 \(O(\sum n^2)\)

代码 \(\text{by Fyx}\)

posted @ 2025-04-22 07:46  Hstry  阅读(7)  评论(0)    收藏  举报