分块打表bzoj 3758 数数

Posted shulin~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分块打表bzoj 3758 数数相关的知识,希望对你有一定的参考价值。

【题目描述】

Description

神犇最近闲来无事,于是就思考哲学,研究数字之美。在神犇看来,如果一个数的各位能够被分成两个集合,而且这两个集合里的数的和相等,那么这个数就是优美的(具体原因就只有神犇才知道了)。现在神犇在思考另一个问题,在区间[a,b]中有多少个数是优美的?这个问题对于神犇来说很简单,相信对于你来说也不难。 
Input

输入只有一行,包含两个整数a和b。 
Output

输出只有一行,包含一个整数,代表区间[a,b]中优美的数的个数。

Sample Input

1 11 
Sample Output


HINT

1<=A<=B<=10^9

【思路】

  • 对于每个数x,可以log(x)复杂度内(二进制背包问题)求出这个数是不是完美数
  • 对于[a,b]内有多少个完美数,可以由前缀和sum[a]-sum[b-1]得出
  • 考虑到a=1,b=1e9时不能在线算,所以要打表预处理
  • 考虑到打表要打1e9,显然不允许
  • 因为要求的是前缀和,所以我们可以分块求和,整块的由表得出,最右边不在整块的暴力(前面已经说了单个复杂度很小)
  • 综合考虑时间和空间,1e9个数分成1e3块(要考虑到编译超时的问题?),空间1e3可以,时间1e6logx也可以

 【AC】

http://blog.csdn.net/PoPoQQQ/article/details/41551913

以上是关于分块打表bzoj 3758 数数的主要内容,如果未能解决你的问题,请参考以下文章

小P的数学问题 分块打表

HDU 6555 The Fool(打表&整除分块)

HDU 6333 莫队分块 + 逆元打表求组合数

整除分块

bzoj3920: Yuuna的礼物(莫队+分块套分块)

BZOJ.3920.Yuuna的礼物(莫队 分块套分块)