2023.4.13 闲话

省选 D1T1 爆零我还以为是点差分的问题,后来听人说点差分没卡后看了一眼代码原来是测完样例后改了一下,大样例过了,小样例炸了 .

知道 CCF 大样例弱,没想到比小样例还弱,绝了我草 .


卡了一个洛谷 bug:


对于常数 x 定义:

f(n)={1n=0j=1xf(nj)otherwise.

尽可能快速求 f

Algorithm 1. 矩阵快速幂 Θ(x3logn) .

Algorithm 2. 考察差分 f(n)f(n1),展开一层递推可以得到 f(n)f(n1)=f(n1)f(nx1),即 f(n)=2f(n1)f(nx1) .

看作一个图上带权路径权值和问题,枚举经过了权值为 1 的边的个数可以得到 f 的一个表达式:

f(n)=i=0n/(x+1)(1)i2ni(x+1)(nixi)

假设你能 Θ(1) 求解 2 的次幂和组合数,则直接计算的时间复杂度即为 Θ(n/x) .

把这两个拼起来平衡,可以得到一个 Θ(n3/4log1/4n) 的做法 .

对于常数 x 定义:

f(n)={1n=0j=1x(1)jf(nj)otherwise.

尽可能快速求 f

Algorithm 1. 矩阵快速幂 Θ(x3logn) .

Algorithm 2. 考察 f(n)+f(n1),根据类似做法可以得到 f(n)=(1)xf(n1x)2f(n1) .

那么还是看作一个图上带权路径权值和问题,枚举经过了权值为 (1)x 的边的个数可以得到 f 的一个表达式:

f(n)=(1)n1i=0n/(x+1)2ni(x+1)(nixi)

假设你能 Θ(1) 求解 2 的次幂和组合数,则直接计算的时间复杂度即为 Θ(n/x) .

把这两个拼起来平衡,可以得到一个 Θ(n3/4log1/4n) 的做法 .

(UPD. Algorithm 1 换成常系数齐次线性递推可以更快,LOJ #547 匹配字符串

posted @   yspm  阅读(69)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
😅​
点击右上角即可分享
微信分享提示