HDU 3208 Integer’s Power
2012-02-25 01:34
204 查看
题目大意:
定义f(x)表示, x最多为某个正整数的f(x)次幂.求[l, r]区间内所有数f(x)的和. r不超过2 * 10 ^ 18.
简要分析:
我做复杂了, 于是这个做法就是:
注意到f(x)的值是小于64的, 我们就可以统计出[l, r]区间内的1次方数, 2次方数直至63次方数(并不是严格2次方, 可以包含4次方等). 令p[x]记录x次方数的个数, 现在我们考虑如何求恰为1次方数的数的个数. 很明显可以利用容斥原理, 答案就是p[1] - p[2] - p[3] - p[5] + p[6] - p[7] + p[10] - ..., 每一项的系数恰为该数的莫比乌斯函数(详见wiki). 对于其它的次数, 被它包含的只可能是它的倍数, 所以把这些数都除以你要统计的那个次数, 就回到刚才讨论的恰为1次的问题了. 时间复杂度O(64 ^ 2).
代码实现:
View Code
定义f(x)表示, x最多为某个正整数的f(x)次幂.求[l, r]区间内所有数f(x)的和. r不超过2 * 10 ^ 18.
简要分析:
我做复杂了, 于是这个做法就是:
注意到f(x)的值是小于64的, 我们就可以统计出[l, r]区间内的1次方数, 2次方数直至63次方数(并不是严格2次方, 可以包含4次方等). 令p[x]记录x次方数的个数, 现在我们考虑如何求恰为1次方数的数的个数. 很明显可以利用容斥原理, 答案就是p[1] - p[2] - p[3] - p[5] + p[6] - p[7] + p[10] - ..., 每一项的系数恰为该数的莫比乌斯函数(详见wiki). 对于其它的次数, 被它包含的只可能是它的倍数, 所以把这些数都除以你要统计的那个次数, 就回到刚才讨论的恰为1次的问题了. 时间复杂度O(64 ^ 2).
代码实现:
View Code
相关文章推荐
- HDU 3208 - Integer's Power (容斥原理)
- hdu 3208 Integer’s Power (坑精度,容斥)
- 【HDU】3208 Integer’s Power
- HDU 3208 Integer's Power(容斥原理、指数和、高精度求开根)
- HDU 3208 Integer’s Power
- hdu 3208 Integer’s Power(容斥原理)
- Integer’s Power HDU - 3208 组合数学
- hdu 3208 Integer’s Power 筛法
- Integer’s Power HDU - 3208 组合数学
- Integer’s Power HDU - 3208 组合数学
- Integer’s Power HDU - 3208 组合数学
- Integer’s Power HDU - 3208 组合数学
- Integer’s Power HDU - 3208 组合数学
- Integer’s Power HDU - 3208 组合数学
- HDU 3208 Integer’s Power 【容斥】
- Integer’s Power HDU - 3208 组合数学
- Integer’s Power HDU - 3208 组合数学
- 【HDOJ】3208 Integer’s Power
- HDU-1047 Integer Inquiry Java
- hdu 1047 Integer Inquiry