Codeforces 614 A Link/Cut Tree
2016-01-15 08:48
288 查看
传送门:http://codeforces.com/contest/614/problem/A
本题会暴long long
237171123124584251 923523399718980912 7150
这组数据得出了一个位于l,r之间的值,而实际上那个值应该是大于r的,本应输出-1,所以错了
还有一组数据,即
1 1000000000000000000 1000000000
应该在下一次有暴longlong的潜能时,及时终止,即不能少一次判断,将此判断写在for循环的终止条件里面,这样会少解的
学到了一个优美的方法解决此问题,即
还有优美的写法,即利用r是在longlong范围内去判断
还有这种写法
本题会暴long long
237171123124584251 923523399718980912 7150
这组数据得出了一个位于l,r之间的值,而实际上那个值应该是大于r的,本应输出-1,所以错了
还有一组数据,即
1 1000000000000000000 1000000000
应该在下一次有暴longlong的潜能时,及时终止,即不能少一次判断,将此判断写在for循环的终止条件里面,这样会少解的
学到了一个优美的方法解决此问题,即
[code]#include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; #define ll long long ll l,r,k; vector<ll>vec; int main(){ /* ll ans=2613510006250000 */ cin>>l>>r>>k; ll ans=1ll; for(;ans<=(ll)1e18;){ if(ans>=l&&ans<=r){ vec.push_back(ans); } if(ans>((ll)(9e18))/k) break; ans=ans*k; } if(vec.size()==0) return puts("-1"); for(int i=0;i<vec.size()-1;i++){ cout<<vec[i]<<" "; } cout<<vec[vec.size()-1]<<endl; return 0; }
还有优美的写法,即利用r是在longlong范围内去判断
[code]#include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; #define ll long long ll l,r,k; vector<ll>vec; int main(){ /* ll ans=2613510006250000 */ cin>>l>>r>>k; ll ans=1ll; for(;ans<=r;){ if(ans>=l){ vec.push_back(ans); } //if(ans>((ll)(9e18))/k) break; if(ans<=r/k) ans=ans*k; else break; } if(vec.size()==0) return puts("-1"); for(int i=0;i<vec.size()-1;i++){ cout<<vec[i]<<" "; } cout<<vec[vec.size()-1]<<endl; return 0; }
还有这种写法
[code]ll limit = log(2e18) / log(double(k)); ll res = 1; ll count = 0; for (int i = 0; i <= limit; i++) { if (res >= l && res <= r) { cout << res << ' '; ++count; } res *= k; }
相关文章推荐
- Leetcode 34. Search for a Range
- C语言去除字符串首尾空格,trim()函数实现
- 通信基础
- Android--动态改变ImageView的亮度
- 谁在为互联网从业者的薪水买单? 1技术创业者2传统企业外行着3互联网公司的新项目
- oracle 安全与审计
- 全面学习ORACLE Scheduler特性(12)使用Windows和Window Groups
- 全面学习ORACLE Scheduler特性(11)使用Job Classes
- 全面学习ORACLE Scheduler特性(10)管理Chains
- 全面学习ORACLE Scheduler特性(9)创建Chains
- sqlite3以及sql的简单介绍
- 每天一个设计模式: 状态模式(State)
- 使用myeclipse为java web项目添加Spring框架
- ubuntu14.04下mysql数据库的默认存放路径并修改
- ThinkPHP、php项目csv格式导入,需要的可以略作调整
- 全面学习ORACLE Scheduler特性(8)Application抛出的Events
- 地形编辑
- 全面学习ORACLE Scheduler特性(7)Scheduler抛出的Events
- 全面学习ORACLE Scheduler特性(6)设置Repeat Interval参数
- 术语解释