2023.4.13 闲话
省选 D1T1 爆零我还以为是点差分的问题,后来听人说点差分没卡后看了一眼代码原来是测完样例后改了一下,大样例过了,小样例炸了 .
知道 CCF 大样例弱,没想到比小样例还弱,绝了我草 .
卡了一个洛谷 bug:
对于常数 \(x\) 定义:
尽可能快速求 \(f\)?
Algorithm 1. 矩阵快速幂 \(\Theta(x^3\log n)\) .
Algorithm 2. 考察差分 \(f(n)-f(n-1)\),展开一层递推可以得到 \(f(n)-f(n-1)=f(n-1)-f(n-x-1)\),即 \(f(n)=2\cdot f(n-1)-f(n-x-1)\) .
看作一个图上带权路径权值和问题,枚举经过了权值为 \(-1\) 的边的个数可以得到 \(f\) 的一个表达式:
假设你能 \(\Theta(1)\) 求解 2 的次幂和组合数,则直接计算的时间复杂度即为 \(\Theta(n/x)\) .
把这两个拼起来平衡,可以得到一个 \(\Theta(n^{3/4}\log^{1/4}n)\) 的做法 .
对于常数 \(x\) 定义:
尽可能快速求 \(f\)?
Algorithm 1. 矩阵快速幂 \(\Theta(x^3\log n)\) .
Algorithm 2. 考察 \(f(n)+f(n-1)\),根据类似做法可以得到 \(f(n)=(-1)^xf(n-1-x)-2\cdot f(n-1)\) .
那么还是看作一个图上带权路径权值和问题,枚举经过了权值为 \((-1)^x\) 的边的个数可以得到 \(f\) 的一个表达式:
假设你能 \(\Theta(1)\) 求解 2 的次幂和组合数,则直接计算的时间复杂度即为 \(\Theta(n/x)\) .
把这两个拼起来平衡,可以得到一个 \(\Theta(n^{3/4}\log^{1/4}n)\) 的做法 .
(UPD. Algorithm 1 换成常系数齐次线性递推可以更快,LOJ #547 匹配字符串)
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/17315245.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ