Codefoces 955C 题解

版权声明:博主是个蒟蒻,希望大家支持,如果要转发就转发吧,把我链接挂上即可。 https://blog.csdn.net/LightningUZ/article/details/89040080

题意简述

多组数据。每次给定 l l , r r ( l , r l,r < = 1 e 18 <=1e18 ),求 l l ~ r r 中有多少 x x 满足 a = a p a=a^p ,其中 a a p p 是两个整数满足 a > 0 , p > 1 a>0,p>1

数据

6
1 4
9 9
5 7
12 29
137 591
1 1000000

思路

会发现,当 p > = 3 p>=3 时,是的 0 < = a p < = 1 e 18 0<=a^p<=1e18 a a 并不多, p = 3 p=3 大概有 1 e 6 1e6 ,然后后面更少。经计算,总共的个数是 1003332 1003332 ,就比 1 e 6 1e6 多一点。考虑暴力存下,排序去重,就省得暴力打容斥还要 O ( ) O(\infin )

猜你喜欢

转载自blog.csdn.net/LightningUZ/article/details/89040080