摘要: 容斥原理引入:已知x=y^k,(x,y,k正整数),要使k最大,即y最小。输入a,b;计算[a,b]中的数的k的和,(2<=a<=b<=10^18),可统计[1,b]和[1,a-1]中数k的和,再相减可得出答案。因为2^62>10^18;即k<62;可以计算区间上1次方,2次方,3次方..的数的个数;其间会重复计算,j%i==0则会重复计算,需要减去num[i]-=num[j];(注意:要从后往前减)..最后乘加起来就好了。。这题坑爹的是计算次方个数时卡精度,因为pow(x,1.0/k)精度丢失了,最明显的是就是[2,1e18]时的9次方的个数为99,就是怎么发现 阅读全文
posted @ 2012-11-24 16:37 _hikaru__ 阅读(645) 评论(0) 推荐(0) 编辑