Codeforces 813B The Golden Age(数学+枚举)
题目大意:如果一个数t=x^a+y^b(a,b都是大于等于0的整数)那就是一个unlucky数字。给你x,y,l,r(2 ≤ x, y ≤ 10^18, 1 ≤ l ≤ r ≤ 10^18),求出l到r内没有unlucky数字的最小区间。
解题思路:可以知道a,b最多也不会超过60(2^60>1e18),所以可以直接枚举x^a+y^b的值存到vector里,然后排序,遍历一下vector,找出v[i+1]-v[i]-1(因为两端都是unlucky数字所以要两个端点都不算在长度内)最大的区间即可。要注意vector为空和两个端点的特判。还有数字的溢出问题,这个没办法直接判断是否溢出,可以通过使用一个d=r,比如每次x次方加一的时候,就将d/x,当d==0说明x^a已经超出r的范围了。
代码:
1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 using namespace std; 5 typedef long long ll; 6 7 vector<ll>v; 8 9 int main(){ 10 ll x,y,l,r; 11 cin>>x>>y>>l>>r; 12 ll tx,ty; 13 ll d1=r; 14 for(int i=0;i<=61;i++){ 15 if(i!=0) 16 d1/=x; 17 if(d1==0) 18 break; 19 if(i==0) 20 tx=1; 21 else 22 tx*=x; 23 ll d2=r; 24 for(int j=0;j<=61;j++){ 25 if(j!=0) 26 d2/=y; 27 if(d2==0) 28 break; 29 if(j==0) 30 ty=1; 31 else 32 ty*=y; 33 if(tx+ty>=l&&tx+ty<=r){ 34 v.push_back(tx+ty); 35 } 36 } 37 } 38 //vector为空的情况 39 if(!v.size()){ 40 cout<<r-l+1<<endl; 41 return 0; 42 } 43 44 ll ans=0; 45 sort(v.begin(),v.end()); 46 for(int i=0;i<v.size();i++){ 47 //如果l不是unlucky数字,那就额外计算v[0]-l这段区间 48 if(i==0&&v[0]!=l) 49 ans=max(ans,v[i]-l); 50 //如果r不是unlucky数字,就额外计算r-v[v.size()-1]这段区间 51 if(i==v.size()-1){ 52 if(!sign2) 53 ans=max(ans,r-v[i]); 54 } 55 else 56 ans=max(ans,v[i+1]-v[i]-1); 57 } 58 cout<<ans<<endl; 59 }
转载于:https://www.cnblogs.com/fu3638/p/7117154.html
Codeforces 813B The Golden Age(数学+枚举)相关推荐
- Golden Age Project Comp-2A压缩器评测
Golden Age Project继续寻求将经典设计带到大众可及的范围内,这款价格低廉的LA-2A. 与Comp-3A固态光学压缩器同时发布的还有Golden Age Project的Comp-2A ...
- B. Power Sequence(数学+枚举)Codeforces Round #666 (Div. 2)
原题链接: https://codeforces.com/contest/1397/problem/B 测试样例: input 3 1 3 2 output 1 input 3 1000000000 ...
- 【CodeForces - 485D】Maximum Value (枚举,用数组离散化,数学,取模运算,因子,筛法)
题干: You are given a sequence a consisting of n integers. Find the maximum possible value of (intege ...
- 枚举 ---- B. RPG Protagonist[Educational Codeforces Round 94 (Rated for Div. 2)]数学枚举
B. RPG Protagonist 题目大意:就是你有两个人,每个人都有一个最大的体力值p和f,这两个人要去搬运剑和盾牌,剑的数量是cnts,盾的数量是cntw,每个剑的重量是是s,每个盾的重量是w ...
- CF思维联系–CodeForces - 222 C Reducing Fractions(数学+有技巧的枚举)
ACM思维题训练集合 To confuse the opponents, the Galactic Empire represents fractions in an unusual format. ...
- CodeForces 444C. DZY Loves Physics(枚举+水题)
转载请注明出处:http://blog.csdn.net/u012860063/article/details/37509207 题目链接:http://codeforces.com/contest/ ...
- Educational Codeforces Round 11A. Co-prime Array 数学
地址:http://codeforces.com/contest/660/problem/A 题目: A. Co-prime Array time limit per test 1 second me ...
- CodeForces - 803C Maximal GCD(贪心 + 枚举)
链接一 链接二 You are given positive integer number n. You should create such strictly increasing sequence ...
- CodeForces - 765D Artsem and Saunders(数学化简+构造+思维)
题目链接:点击查看 题目大意:给出一个序列f(x),要求我们构造出两个序列g(x)和h(x),满足: g(h(x))=x g(x)定义域[1,n],值域[1,m] h(g(x))=f(x) h(x)定 ...
最新文章
- pandas dataframe bool索引的使用
- java 待在原页面 代码_现在java后台,只要修改一点点代码,前段页面就报500,必须重新登录才行?...
- AnkhSVN 1.0.2778 简体中文版发布
- ES6——举个例子理解Promise的原理和使用
- 《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一2.5 为跨年度的个人参赛选手构造记录...
- Kong-dashboard 安装 启动运行
- ​inotify+rsync实时数据同步实践讲解17
- 【白皮书分享】2020年短视频全链路营销白皮书.pdf(附下载链接)
- MegaCli查看RIAD相关信息
- 51nod 1577 线性基
- 在 Mac 中 使用 Safari 常出现「此网页正使用大量内存...」如何修复?
- ICSharpCode.SharpZipLib实现压缩解压缩
- 智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数
- oracle rman迁移spfile,RMAN 异机迁移实战操作-附加常用命令
- rpx单位的换算的过程
- 使用zepto实现QQ消息左滑删除效果
- 在Qt中使用OpenGL(四)
- 网站统计IP PV UV实现原理
- 中国少儿模特明星盛典 《荣耀王者》主题曲 即将全网发布
- 汇编指令-CMP、TEQ