[分块打表] [Luogu P1822] 魔法指纹

题目传送门
(反正老年选手写题解也没人看随便水2333333)
一向毒瘤的 dayu 模拟赛这回搞到了这道题……
看起来很像数位 DP 不是吗?
可是不会转移啊QAQ……想了半天决定分块打表!
分块打表这个黑科技是从Po姐那里学来的……(其实只不过是知乎上的一个回答……
于是借鉴这个思路,分块打表……处理出 [ x × 1 0 6 , ( x + 1 ) × 1 0 6 ] [x\times 10^6,(x+1)\times 10^6] [x×106,(x+1)×106] 中答案的个数。这个数组有 1 0 3 10^3 103 那么大,不超过代码长度限制……
然后对于其余部分,直接暴力做就好了,对于单独一个数的分解时间复杂度是 O ( lg ⁡ 2 n ) O(\lg^2 n) O(lg2n) 的。
于是这个复杂度最坏就是 O ( 1 0 6 lg ⁡ 2 max ⁡ ( l , r ) + 1 0 3 ) O(10^6\lg^2 \max(l,r)+10^3) O(106lg2max(l,r)+103),能过……
学弟的表打出来比我的快 5 5 5 倍QAQ
Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值