HDU Integer's Power(容斥原理)

题意

求[l,r]的最大指数和(1<=l,r<=10^18)

最大指数和(如64=8^2=4^3=2^6,所以64的最大指数和是6)

题解

很明显我们可以先求出[1,n]的最大指数和,然后再作差。

我们可以先求出num[i]代表[1,n]中最大指数为i的数有多少个。

然后枚举全部的i,然后让答案加上i*num[i];

那么怎么求num[i]呢

我们可以求出[1,n]中指数为x的数有多少个作为num[x]的初步值。这个用n1/x就可以求出(不过要注意精度问题,及其恶心,看代码吧)

然后这个num却对是不对的。我们发现16=4^2=2^4,num[2]中却有16,所以我们用num[2]-num[4]就行了。

我们发现对于每一对i>j且i%j==0num[j]都需要减num[i],不过我们要倒序枚举j。

具体看代码吧。

 1 #include<iostream>
 2 #include<cmath>
 3 #include<cstdio>
 4 #include<algorithm>
 5 #include<cstring>
 6 using namespace std;
 7 const long long INF=1e18+1;
 8 const long long inf=(long long)1<<31; 
 9 long long dp[100],a,b,n;
10 long long ksm(long long x,long long b){
11     long long tmp=1;
12     while(b){
13         if(b&1){
14             double num=1.0*INF/tmp;
15             if(x>num)return -1;
16             tmp=tmp*x;
17         }
18         b>>=1;
19         if(x>inf&&b>0)return -1;
20         x=x*x;
21     }
22     return tmp;
23 }
24 long long calc(long long n,long long x){
25     long long a=(long long)(pow((double)(n),1.0/x)+1e-9);
26     long long b=ksm(a,x);
27     if(b==n)return a;
28     if(b==-1||b>n)return a-1;
29     long long c=ksm(a+1,x);
30     if(c!=-1&&c<=n)return a+1;
31     else return a;
32 }
33 long long solve(long long x){
34     if(x==0)return 0;
35     if(x==1)return 1;
36     long long k;
37     dp[1]=x;
38     for(long long i=2;i<=62;i++){
39         dp[i]=calc(x,i)-1;
40         if(dp[i]==0){
41             k=i-1;
42             break;
43         }
44     } 
45     for(long long i=k;i>=1;i--)
46         for(long long j=1;j<i;j++){
47             if(i%j==0)dp[j]-=dp[i];
48         }
49     long long ans=dp[1];
50     for(long long i=2;i<=k;i++){
51         ans+=dp[i]*i;
52     }
53     return ans;
54 }
55 int main(){
56     while(scanf("%lld%lld",&a,&b)!=EOF){
57         if(a==0&&b==0)break;
58         printf("%lld\n",solve(b)-solve(a-1));
59     } 
60     return 0;
61 }

 

转载于:https://www.cnblogs.com/Xu-daxia/p/9715416.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能姿态逐渐“亲民”,2021年AI五大趋势备受期待

来源&#xff1a;齐鲁壹点人工智能(AI)已成为多国科技发展领域的“香饽饽”&#xff0c;各国政府以及多家大企业也都不甘示弱&#xff0c;争相砸重金支持该领域的发展&#xff0c;各种创新因此如雨后春笋般喷薄而出。此外&#xff0c;新冠肺炎疫情的肆虐迫使我们进一步加大对于…

MYSQL--三种锁

数据库锁设计的初衷是处理并发问题。作为多用户共享的资源&#xff0c;当出现并发访问的时候&#xff0c;数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。根据加锁的范围&#xff0c;MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。…

网络请求过程示例

1.域名解析&#xff1a;在客户端&#xff08;浏览器&#xff09;输入http://www.baidu.com&#xff0c;通过DNS解析到该域名对应的IP地址为220.181.27.48 2.数据包通过链路层发送到路由器&#xff0c;通过邻居协议(ARP协议)查找给定IP地址的MAC地址 3.TCP三次握手建立端到端的连…

行业观察 | 全球IoT云平台第一股诞生,IoT离爆发还有多远?

来源&#xff1a; 财经杂志文 &#xff1a;施然2021年3月18日&#xff0c;IoT云平台公司Tuya&#xff08;涂鸦智能&#xff09;上市&#xff0c;这也是目前全球范围内IoT云平台第一股。Tuya的云敲钟仪式在杭州举办&#xff0c;共同参与云敲钟仪式的&#xff0c;除了Tuya的高管团…

Leetcode--23.合并K个排序链表(Java)

合并 k 个排序链表&#xff0c;返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 思路&#xff1a;分治法 多个链表&#xff0c;两两合并&#xff0c;第…

SQL2012 之 创建备份计划

打开数据库&#xff0c;选择 管理 → 右键维护计划→选择新建维护计划&#xff0c;填写计划名称&#xff0c;如下图&#xff1a; 修改维护计划参数&#xff0c;如下图&#xff1a; 工具箱->备份数据库任务&#xff0c;拖到计划里&#xff0c;如下图&#xff1a; 编辑“备份数…

薛其坤院士对话马斯克:下一个颠覆性创新是什么?

来源&#xff1a;网易科技报道文&#xff1a;丁广胜他来了&#xff0c;他又来了&#xff0c;马斯克这次在家中远程视频参会中国发展高层论坛。这次很遗憾&#xff0c;马斯克不能现场展示“动感舞蹈”了。他谈到了自动驾驶&#xff0c;也谈到了星际探索。薛其坤院士谈到了太阳能…

redis的底层数据结构

redis:一个key-value系统 Redis 与其他 key - value 缓存产品相比有以下三个特点&#xff1a; Redis支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中&#xff0c;重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据&#xff0c;同时还提…

「九章」量子计算优越性遭北大院士质疑,潘建伟陆朝阳长文回应

来源&#xff1a; 雷锋网作者&#xff1a;付静对量子计算和玻色取样的专业概念的理解存在偏差&#xff0c;或是「九章」受质疑的原因。2020 年 12 月 4 日&#xff0c;我国成功达到量子计算研究第一个里程碑量子计算优越性&#xff08;Quantum Computational Advantage&#xf…

Leetcode--542. 01 矩阵(java)

给定一个由 0 和 1 组成的矩阵&#xff0c;找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 1 注意: 给定矩阵的元素个数不超过 10000。…

OpenAI又放大招:连接文本与图像的CLIP,在ImageNet上效果媲美ResNet50

来源&#xff1a;AI科技评论公众号编译&#xff1a;蒋宝尚、陈彩娴2020年&#xff0c;通用模型产生了经济价值&#xff0c;特别是GPT-3&#xff0c;它的出现证明了大型语言模型具有惊人的语言能力&#xff0c;并且在执行其他任务方面也毫不逊色。2021年&#xff0c;OpenAI 联合…

[COCI2017-2018#1] Plahte

题面很长&#xff0c;可往往真正有用的题意却没有这么长&#xff0c;例如说这么一句&#xff1a; 床单放在上面&#xff0c;使它们之间角或边不会互相接触&#xff0c; 边也不会相交&#xff0c;但他可能把较小的床单放在大的上面&#xff0c;或者一个完全覆盖另个。 从这句话中…

Leetcode-437. 路径总和 III(Java)

给定一个二叉树&#xff0c;它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始&#xff0c;也不需要在叶子节点结束&#xff0c;但是路径方向必须是向下的&#xff08;只能从父节点到子节点&#xff09;。 二叉树不超过1000个节…

美国国家创新体系的演化历程、特点及启示

本文来源&#xff1a;微信公众号科情智库原载于《全球科技经济瞭望》2020年12月第35卷第12期作者&#xff1a;李哲、杨晶、朱丽楠&#xff0c;中国科学技术发展战略研究院国家创新体系反映经济活动中科学技术知识生产和配置的整体状况&#xff0c;其着眼点是激励知识生产、提高…

牛客网--字符串合并处理(Java)

按照指定规则对输入的字符串进行处理。 详细描述&#xff1a; 将输入的两个字符串合并。 对合并后的字符串进行排序&#xff0c;要求为&#xff1a;下标为奇数的字符和下标为偶数的字符分别从小到大排序。这里的下标意思是字符在字符串中的位置。 对排序后的字符串进行操作…

再造一个爱因斯坦?GPT-3 让我看到了名人“重生”的希望

作者&#xff1a;Manuel Araoz译者&#xff1a;弯月来源&#xff1a;CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;自从GPT-3推出以来&#xff0c;我就一直在做各种尝试。这是一项非常酷的技术&#xff0c;我发现最有趣的一项实验就是通过GPT-3与已故去的名人对话。在本…

中文乱码解决

1.url链接设置字符编码 mysql.urljdbc:mysql://127.0.0.1:3306/micro_class?characterEncodingutf-82.数据库编码设置 查看数据库编码&#xff1a;show variables like character%; SET character_set_database utf8; SET character_set_server utf8; 转载于:https://www.c…

牛客网--单词倒排(Java)

题目描述 对字符串中的所有单词进行倒排。 说明&#xff1a; 1、每个单词是以26个大写或小写英文字母构成&#xff1b; 2、非构成单词的字符均视为单词间隔符&#xff1b; 3、要求倒排后的单词间隔符以一个空格表示&#xff1b;如果原字符串中相邻单词间有多个间隔符时&am…

【NOIP模拟】健美猫

题面 分析 此题真是一言难尽。下面这么大一串&#xff0c;真的只是在讲一个小模拟。。。此题也是被几个julao反复讲&#xff0c;各种五花八门的奇淫巧技&#xff0c;什么数学变形&#xff0c;树状数组&#xff0c;差分&#xff0c;单调……好吧&#xff0c;我是那种只会30分暴力…

走向通用智能的核心:任务树的建立

来源&#xff1a;混沌巡洋舰人工智能的一个核心问题&#xff0c;是用已有的算法解决新的目标。对于人类来说&#xff0c;最常用的方法是得到和目标最相近的子目标&#xff0c; 子目标的子目标&#xff08;比如饿了就要找吃的&#xff0c;找吃的就要去菜市场买菜&#xff09;&am…