Integer’s Power HDU - 3208(容斥原理)
找出(l,r)内的所有的指数最大的次方和
因为一个数可能可以看成a^b和c^d,所以我需要去重,从后往前枚举幂数,然后找可以整除的部分,把低次幂的数去掉。
然后开n方的部分,先用pow()函数找到最接近答案的数,但是会丢失精度,然后在这个数的附近寻找最接近答案的整数,用快速幂在乘n次幂回去,看最接近原本数的是哪一个。
#include<map> #include<set> #include<ctime> #include<cmath> #include<stack> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define lowbit(x) (x & (-x))typedef unsigned long long int ull; typedef long long int ll; const double pi = 4.0*atan(1.0); const int inf = 0x3f3f3f3f; const int maxn = 100; const int maxm = 200010; const int mod = 998244353; const double eps = 1e-8; using namespace std;ll n, m; int T, tol; ll num[70]; ll INF = 1e18;ll qpow(ll a, ll b) {ll ans = 1;while(b) {if(b&1) {double tmp = 1.0 * INF / ans;if(a > tmp) return -1;ans = ans * a;}b >>= 1;if(a > ((ll)1<<31) && b) return -1;a = a*a;}return ans; }ll calc(ll x, int pos) {ll a = (ll)pow((double)x, 1.0/pos);ll ansl = qpow(a-1, pos);ll ansm = qpow(a, pos);ll ansr = qpow(a+1, pos);if(ansr != -1 && ansr <= x) return a+1;if(ansm != -1 && ansm <= x) return a;return a-1; }ll solve(ll x) {memset(num, 0, sizeof num);num[1] = x;int pos = 2;for(; pos <= 64; pos++) {ll tmp = calc(x, pos) - 1;if(tmp <= 0) break;num[pos] = tmp;}pos--;for(int i=pos; i>=1; i--) {for(int j=2; i*j<=pos; j++) {num[i] -= num[i*j];}}//for(int i=1; i<=pos; i++) printf("%I64d%c", num[i], i==pos ? '\n' : ' ');ll ans = 0;for(int i=1; i<=pos; i++) ans += i * num[i];return ans; }int main() {while(scanf("%I64d%I64d", &n, &m), n||m) {ll ans = solve(m);ans -= solve(n-1);printf("%I64d\n", ans);}return 0; }
View Code
转载于:https://www.cnblogs.com/Jiaaaaaaaqi/p/9473284.html
Integer’s Power HDU - 3208(容斥原理)相关推荐
- HDU Integer's Power(容斥原理)
题意 求[l,r]的最大指数和(1<=l,r<=10^18) 最大指数和(如64=8^2=4^3=2^6,所以64的最大指数和是6) 题解 很明显我们可以先求出[1,n]的最大指数和,然后 ...
- HDU - 1796——容斥原理+二进制枚举
[题目描述] Now you get a number N, and a M-integers set, you should find out how many integers which are ...
- HDU 5514 容斥原理
题意 传送门 HDU 5514 题解 对于青蛙 iii,每一步即在模 mmm 意义上增加 aia_iai,那么当青蛙走回起点 000 时,有 ai×step=0modma_i\times step= ...
- hdu 5213(容斥原理+莫队算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5213 莫队算法是离线处理一类区间不修改查询类问题的算法.就是如果你知道了[L,R]的答案.你可以在O( ...
- hdu 2204 容斥原理
点击打开链接 以下为参考大牛http://blog.csdn.net/acm_cxlove/article/details/7873776 题目:求出1-N里面能表示 成M^K的数有多少个 求A^B在 ...
- 信息学竞赛中的数学知识 --- 容斥原理
C++基础数论-----容斥原理 C++基础数论-----容斥原理_C2020lax的博客-CSDN博客_容斥原理c++ C++数论容斥原理----无关的元素 C++数论容斥原理----无关的元素 - ...
- ACM组合数学题目列表
基本组合计数 HDU 1028 Ignatius and the Princess III 整数划分 HIT 1402 整数划分问题 多种整数划分 置换群 PKU 2369 求置换的周期 1026 求 ...
- WaWa的奇妙冒险(第三周集训自闭现场)
第三周集训自闭现场(a* ida* dbfs真的好难) (一)wlacm例题记录 A-有重复元素的排列问题 (水题,但卡我到自闭) Input Output Sample Input Sample O ...
- 【原创】概率DP总结 by kuangbin
概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...
最新文章
- 2018icpc南京网络赛L题Magical Girl Haz(dijkstra+dp)
- 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]
- Oracle 默认时间格式 Date格式转换
- ustc小道消息20211223
- php超链接_一个纯PHP库,用于读写文字处理文档
- ListView中让TextView中的文字进行单独滚动
- 光端机的原理和使用范围
- 在 Intellij IDEA 里使用 OpenJFX (JavaFX)
- 极致CMS个人博客企业官网模板
- 图论——图的遍历(洛谷 P3916)
- 华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀
- Java学习笔记:BlockingQueue接口
- Word01-从正文处开始插入页码
- C++数据库编程简介
- 解决由于破解软件导致的page fault in nonpaged area蓝屏
- BUUCTF:小易的U盘
- Thymeleaf即时生效
- 升平,景玉军.计算机虚拟技术在高职汽车维修教学中的应用研究[j].,汽车新技术教学方法探讨...
- Opncv 实现拍照、颜色识别和阈值选取
- 如何移植 Arx/ Dbx 模块为 Crx/DBX 模块来支持 AutoCAD 易(值得一看)
热门文章
- 从 Alpha 到 Beta,这次是 New mPaaS
- 对待棘手bug,新手与大牛的差距在哪里?
- 爆发前的最后按钮 白鹭推HTML5首款生态产品Egret Runtime
- 原神:创新和成功有目共睹,游戏可玩性历久弥新,戒骄戒躁保初心
- 【实施工程师】ARP——地址解析协议(高清版本)
- webstorm快捷键说明
- linux文件属性权限相关
- SoC嵌入式软件架构设计之二:虚拟内存管理原理、MMU硬件设计及代码分块管理...
- 职业化之可以固化的六个工作模式
- SharePoint 2007 开发系列(14) 调试sharepoint web part