Codeforces776G题解
题意:
- 设$x$的16进制表示为$x_{n-1} \cdots x_1x_0$,那么设$h(x)=2^{x_{n-1}}|2^{x_{n-2}}| \cdots 2^{x_1}|2^{x_0}$,求区间$[l,r]$中满足$x\ xor\ h(x)< x$的数的个数。
题解:
- 显然只跟最后几位有关,就是一个16进制的数位dp。
- 用记忆化搜索的方式,$dfs(x,y,z,flag)$表示目前到第$x$位,各位的最大值为$y$,最后16位的和到现在的值为$z$,$flag$表示是否贴紧上限。
代码:
1 |
|