【学习笔记】数位dp

Beads

巧妙的数位 d p dp dp

根据回文那套理论我们从两边往中间 d p dp dp就好了,要求字典序第 k k k小就从高到低位确定即可

Beautiful numbers

暴力状压+状态剪枝

Find a car

显然找规律啊

观察到这是一个分形图

那么显然我们可以递归处理每个询问,把它分裂成四个小的矩形区域进行求解

对于整块的询问因为每行每列都是一个排列所以也很容易求得

因为横纵坐标都会分裂成 log ⁡ n \log n logn个区间所以单次询问复杂度 O ( log ⁡ 2 n ) O(\log^2 n) O(log2n)

对不起复杂度是伪的

根据分形图的定义我们知道 a [ i ] [ j ] = ( i − 1 ) ⊕ ( j − 1 ) + 1 a[i][j]=(i-1)\oplus (j-1)+1 a[i][j]=(i1)(j1)+1

将查询的坐标都减 1 1 1,答案是 ∑ i = l 1 r 1 ∑ j = l 2 r 2 ( i ⊕ j + 1 ) [ i ⊕ j ≤ k − 1 ] \sum_{i=l_1}^{r_1}\sum_{j=l_2}^{r_2}(i\oplus j+1)[i\oplus j\le k-1] i=l1r1j=l2r2(ij+1)[ijk1]

化成前缀和的形式然后数位 d p dp dp即可。

数数

不会

New Year and Binary Tree Paths


__EOF__

本文作者仰望星空的蚂蚁
本文链接https://www.cnblogs.com/cqbzly/p/17530109.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   仰望星空的蚂蚁  阅读(10)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2021-08-01 【题解】[NOIP2017 提高组] 列队
点击右上角即可分享
微信分享提示