标签:right NOIP 题解 sum 步数 2020 Delta 复杂度 left
T1. 排水系统
模拟。
时间复杂度为 \(O(n)\)。
T2. 字符串匹配
暴力。
时间复杂度为 \(O(n \log n + n \lvert \Sigma \rvert)\)。
T3. 移球游戏
分治,将问题转化为 \(01\) 串,然后就只用考虑 \(n = 2\) 怎么做。
具体做法网上有很多,也并不难,所以就不写了。
操作次数 \(O(nm \log n)\)。
T4. 微信步数
考虑把总步数拆成最后一轮走的步数和之前走的步数,记第 \(i\) 维每一轮的增量为 \(\Delta(i)\)。
枚举倒数第二轮走到的点,发现我们需要计算:
\[\sum_{i_1 = 0}^{b_1 - 1} \sum_{i_2 = 0}^{b_2 - 1} \cdots \sum_{i_k = 0}^{b_k - 1} \min_j \left \{ \left \lfloor \frac{i_j}{\Delta(j)} \right \rfloor \right \} \]差分:
\[\begin{aligned} & \sum_{x \geqslant 1} \sum_{i_1 = 0}^{b_1 - 1} \sum_{i_2 = 0}^{b_2 - 1} \cdots \sum_{i_k = 0}^{b_k - 1} \left[ \min_j \left \{ \left \lfloor \frac{i_j}{\Delta(j)} \right \rfloor \right \} \geqslant x \right] \\ =& \sum_{x = 1}^{\text{lim}} \prod_{i = 1}^k (b_i - x \cdot \Delta(i)) \end{aligned} \]把 \(\prod\) 部分看做多项式 \(f_0 + f_1 x + \cdots + f_k x^k\),那么可以将上式转化为自然数幂和:
\[\sum_{x = 1}^{\text{lim}} \sum_{i = 1}^k f_i x^i = \sum_{i = 0}^k f_i \sum_{x = 1}^{\text{lim}} x^i \]可以使用你喜欢的方法求解。
时间复杂度为 \(O(nk^2)\)。
标签:right,NOIP,题解,sum,步数,2020,Delta,复杂度,left 来源: https://www.cnblogs.com/acrobat2/p/NOIP-2020.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。