题解 CF614A 【Link/Cut Tree】

此题乃

水题++坑题==水坑题!

题意

求所有的kik^i使lkirl≤k^i≤r

看起来好像有亿点点难度,模拟就行了。

但……

让我们看看这题的吭阬肮炕

题目中说1<=l<=r<=1018,2<=k<=1091<=l<=r<=10^{18},2<=k<=10^{9}

所以只有longlong doubledouble的精度满足要求!!!

看题解的各位小伙伴都和我一样因此WA了上百次吧。

PS:看到楼下很多题解都说要特判k=1k=1,其实不用,因为kk最小是22

上代码

#include<bits/stdc++.h>//全世界都爱用的头文件
using namespace std;
long double l,r,k,c,n=1;//long double千万别忘
int main()
{
    cin>>l>>r>>k;
    while(n<l)
        n*=k;//先乘到l的范围
    while(n>=l&&n<=r)//模拟
    {
        cout<<(long long)n<<' ';
        n*=k;
        c++;
    }
    if(!c)
        cout<<-1<<endl;
    else
        cout<<endl;
    return 0;
}
posted @ 2021-02-04 22:29  luckydrawbox  阅读(8)  评论(0)    收藏  举报  来源