题目:http://acm.hdu.edu.cn/showproblem.php?pid=3208

题意:给两个数a和b,然后在闭区间[a,b]内的每一个数y都可以表示成x^k=y,要求x尽量最小,k尽量最大,然后求所有的k之和。

分析:对于这个题,我们首先要知道是基于以下的事实来计算的:

对于一个数n,从1~n中假设有x个数是满足p^k形式的,这里的k最多到62,那么对于每一个k,我们需要找到这个数x满足x^k最

接近n,那么现在的问题就是对于每一个k找出对应的x,那么这个怎么找呢?

我们可以这样考虑,由于是找最接近的,我们可以先大致确定一个数r,那么可以通过r=pow(n,1/k)来计算,然后我们分别计

算(r-1)^k,r^k,(r+1)^k,然后看这三个数哪个最接近n就行了,这里要注意(r+1)^k计算时可能会超过LL,所以有一些处理。

然后就是相当于容斥的部分了。

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>
using namespace std;
typedef long long LL;
const LL INF=1e18+300;
const LL T=(LL)1<<31;
LL num[105];
LL multi(LL a,LL b)
{
LL ans=1;
while(b)
{
if(b&1)
{
double judge=1.0*INF/ans;
if(a>judge) return -1;
ans*=a;
}
b>>=1;
if(a>T&&b>0) return -1;
a=a*a;
}
return ans;
}
LL find(LL x,LL k)
{
LL r=(LL)pow(x,1.0/k);
LL t,p;
p=multi(r,k);
if(p==x) return r;
if(p>x||p==-1) r--;
else
{
t=multi(r+1,k);
if(t!=-1&&t<=x) r++;
}
return r;
}
LL Solve(LL n)
{
int i,k=0;
memset(num,0,sizeof(num));
if(n<=3) return n;
num[1]=n;
for(i=2;i<63;i++)
{
num[i]=find(n,i)-1;
if(!num[i]) break;
}
k=i;
for(int i=k-1;i>0;i--)
for(int j=1;j<i;j++)
if(i%j==0) num[j]-=num[i];
LL ans=num[1];
for(int i=2;i<k;i++)
ans+=(i*num[i]);
return ans;
}
int main()
{
LL n,m;
while(cin>>m>>n)
{
if(m==0&&n==0) break;
cout<<Solve(n)-Solve(m-1)<<endl;
}
return 0;
}

HDU3208(区间指数和)相关推荐

  1. 【例题】给定一个浮点格式(IEEE 754),有k位指数和n位小数,对于下列数,写出阶码E、尾数M、小数f和值V的公式。另外,请描述其位表示。

    前言: 上次学习汇编语言(清华大学 张悠慧)是在11月26日,内容是IEEE 754(浮点数表示).当时撇下了一道题,等度过了12月(英语六级+本科阶段的最后考试+最后的大作业)再把汇编捡起来.现在正 ...

  2. 张钜楷:1.24黄金区间震荡今日行情多空如何操作,原油暴涨空单解套

    黄金最新行情解析 黄金消息面解析:周一(1月24日)亚洲时段,现货黄金几乎持稳,交投于1833附近.上周五(1月21日)金价连续第二日小幅下跌,受到资产价格普遍回调的影响,但股市大跌以及美元回调都限制 ...

  3. 特雷诺比率、詹森指数和夏普比率

    根据不同的风险度量方式,风险调整的收益指标包括多种,其中较为常见的是基于均值-方差模型调整的收益指标. 这类指标基于马科威茨的均值-方差模型和CAPM模型,采用收益率的标准差(波动)或者β系数来衡量市 ...

  4. 期货市场技术分析07_摆动指数和相反意见理论

    摆动指数和相反意见理论 1.摆动指数必须附于基本的趋势分析. 2.摆动指数的区域基本上是水平向的狭长区域.摆动指数的峰和谷与价格图上的峰和谷同时出现.有些摆动指数的变化具有一个中间值,从而摆动指数所在 ...

  5. Redis 笔记(04)— list类型(作为消息队列使用、在列表头部添加元素、尾部删除元素、查看列表长度、遍历指定列表区间元素、获取指定区间列表元素、阻塞式获取列表元素)

    Redis 的列表是链表而不是数组.这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为 O(n). 当列表弹出了最后一个元素之后,该数据结构自动被删除, ...

  6. LeetCode简单题之汇总区间

    题目 给定一个 无重复元素 的 有序 整数数组 nums . 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 .也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范 ...

  7. FhqTreap的区间翻转

    学 Fhq 就是为了尽量不去写某毒瘤数据结构,所以自然要来杠一杠某数据结构的经典操作:区间反转 听起来玄乎,但只需要一个小 trick 就行了:把原来的区间以下标作为权值建成 Treap , 这样整棵 ...

  8. 【基本操作】主席数统计区间不同颜色个数

    例题:询问 $n$ 个数中无修改的区间不同数个数,不带修改(SPOJ的一道题). 方法1:直接删 我们尝试头铁地开正常的下标主席树! 依次插入 $n$ 个数,插入第 $i$ 个数时,我们只要在把第 $ ...

  9. 【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树

    题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). ...

最新文章

  1. find命令查找某些文件并将其拷贝到指定目录
  2. Java并发编程的艺术(十)——Java中的锁(5)
  3. Quickly Find/ Open a file in Visual Studio
  4. JavaScript中的数组创建
  5. 《Python Cookbook 3rd》笔记(5.18):将文件描述符包装成文件对象
  6. 美团点评技术年货:900+页电子书,覆盖前端、后台、大数据、算法……
  7. SilverlightComponent for ExtJS
  8. openai-gpt_GPT-3的不道德故事:OpenAI的百万美元模型
  9. 信息系统项目管理师论文写作技巧
  10. 25个常用Matplotlib图的Python代码
  11. 远程连接centos 服务器,怎么用远程桌面连接CentOS 8
  12. vue 读取地址栏参数
  13. K--最邻近(K-NN)算法
  14. 小码农的代码(一)----------SpringJDBC的使用
  15. 同花顺股票交易接口定义被类实现
  16. Linux的top命令详解
  17. 微信推文中图片无法保存的解决方案
  18. [奥运] 28届奥运会中国队奖牌一览
  19. dbca -silent静默安装12c rac数据库
  20. react 搭建本地开发环境

热门文章

  1. 装饰者模式的应用场景
  2. 微服务和SOA架构的区别
  3. mybatis简介-什么是Mybatis
  4. Nacos配置中心-命名空间与配置分组
  5. ThreadLocal是救火队长
  6. 图的定义存储和遍历(一级)
  7. python文件下载器代码_GitHub - applechi/pythonCollection: python代码集合(文件下载器、pdf合并、极客时间专栏下载、掘金小册下载、新浪微博爬虫等)...
  8. 在 IntelliJ IDEA 中,如何快速将选中文件用资源管理器打开
  9. USB接口的键盘描述符范例
  10. Linux下安装Python3.6和第三方库