做题记录 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_{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\),求出
其中 \(\subseteq\) 表示非空子序列
令 \(c_v\) 为 \(A\) 中 \(v\) 的倍数的数量
对于固定的 \(m\),\(d\mid \gcd(m,\gcd\{A\})\)(满足 \(d\mid m\))的 \(A\) 的 \(m^{|A|-1}\) 之和为
其中 \(s\) 枚举了 \(|A|\)
因此
直接计算即可,时间复杂度 \(O(\sum M\log M\log n)\)
NFLS #18114. Rikka with Ants
答案为无穷大当且仅当 \(\frac ab=\frac cd\),特判即可
假定 \(\frac ab<\frac cd\),则答案为
由于
因此当 \(\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\) 的根,则答案为
前后都可类欧解决
时间复杂度 \(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
答案为
其中 \(w(u,v)\) 表示边权,\(dis\) 为原图中的距离
考虑如何计算
枚举 \(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))\),则上式等于
对 \(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}\)

浙公网安备 33010602011771号