Codeforces Round #339 (Div. 2) A. Link/Cut Tree - Codeforces(思维)
来源:互联网 发布:淘宝主播薇娅个人资料 编辑:程序博客网 时间:2024/05/23 01:26
Crawling in process...Crawling failedTime Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Description
Programmer Rostislav got seriously interested in the Link/Cut Tree data structure, which is based on Splay trees. Specifically, he is now studying theexpose procedure.
Unfortunately, Rostislav is unable to understand the definition of this procedure, so he decided to ask programmer Serezha to help him. Serezha agreed to help if Rostislav solves a simple task (and if he doesn't, then why would he need Splay trees anyway?)
Given integers l, r and k, you need to print all powers of numberk within range from l to rinclusive. However, Rostislav doesn't want to spent time doing this, as he got interested in playing a network game called Agar with Gleb. Help him!
Input
The first line of the input contains three space-separated integers l, r and k (1 ≤ l ≤ r ≤ 1018,2 ≤ k ≤ 109).
Output
Print all powers of number k, that lie within range froml to r in the increasing order. If there are no such numbers, print "-1" (without the quotes).
Sample Input
1 10 2
1 2 4 8
2 4 5
-1
题目大意:找到在l r之间的k的次数幂的数。这里还是比较坑的一道题,如果是k=10^9的时候数据是非常大的,而且多乘了一个10^9的时候,会导致溢出。所以我们这里处理数据的时候,首先我们要确定要用数据的定义为 long long int。然后记住,这里不能用pow函数,会把数据弄炸。
所以这里我们要应用一个小技巧,其解题主干为:
ll tmp=1; int flag=0; while(tmp<=r) { if(tmp>=l&&tmp<=r)//如果在范围内有数据,说明不用输出-1; printf("%I64d ",tmp),flag=1; if(tmp>r/k)break;//如果tmp*k>r.说明没有必要再乘K了。然而这里tmp*k会溢出,所以挪到不等式右边,变成tmp>r/k的判断条件。 tmp*=k; }然后是完整的AC代码:
#include <cstdio>#include <cmath>#include <cstring>#include <iostream>using namespace std;#define ll long longll l,r,k;int main(){ while(~scanf("%I64d%I64d%I64d",&l,&r,&k)) { ll tmp=1; int flag=0; while(tmp<=r) { if(tmp>=l&&tmp<=r) printf("%I64d ",tmp),flag=1; if(tmp>r/k)break; tmp*=k; } if(flag) printf("\n"); else printf("-1\n"); } return 0;}
- Codeforces Round #339 (Div. 2) A. Link/Cut Tree - Codeforces(思维)
- Codeforces Round #339 (Div. 2) A. Link/Cut Tree
- Codeforces Round #339 (Div. 2) A.Link/Cut Tree
- Codeforces Round #339 (Div. 2) A. Link/Cut Tree
- Codeforces Round #339 (Div. 2)-A. Link/Cut Tree(幂的应用)
- Link/Cut Tree CodeForces
- Codeforces 614 A Link/Cut Tree
- codeforces 614A Link/Cut Tree
- CodeForces 614A Link/Cut Tree
- codeforces 614A Link/Cut Tree
- codeforces 614 A. Link/Cut Tree
- 【CodeForces】[614A]Link/Cut Tree
- CodeForces 614 A. Link/Cut Tree(水~)
- Codeforces--614A--Link/Cut Tree(数学)(暴力求解)
- Codeforces Round #384 (Div. 2) (A+B)(思维)
- Codeforces Round #418 (Div. 2) A+B(思维)
- Codeforces Round #124 (Div. 2)A. Plate Game(思维)
- Codeforces Round #119 (Div. 2) A. Cut Ribbon
- uva12124
- Java Collections.synchronizedMap方法分析
- 空间向量坐标运算
- UITableView的属性
- Usb Audio Device Descriptor(8) Type I Format Type Descriptor
- Codeforces Round #339 (Div. 2) A. Link/Cut Tree - Codeforces(思维)
- mac 命令大全
- c++ 纯虚函数
- Http通信过程(7步)
- hibernate缓存
- Ionic在Android上部署app步骤
- opencv学习笔记(1) TermCriteria 和 光流法特征点
- WIFI
- 【Leetcode】217. Contains Duplicate