CF689C Mike and Chocolate Thieves(二分答案+数学)

来源:互联网 发布:google 人工智能 开源 编辑:程序博客网 时间:2024/04/30 03:28

二分答案,发现最大数一定是xk3,所以枚举立方数,看有多少个,累加即可。

#include <bits/stdc++.h>using namespace std;#define ll long longll n;ll calc(ll x){    ll res=0;    for(ll i=2;i;++i){        ll t=i*i*i;if(t>x) break;        res+=x/t;    }return res;}int main(){    scanf("%lld",&n);    ll l=1,r=1LL<<55;    while(l<=r){        ll mid=(l+r)/2;        if(calc(mid)>=n) r=mid-1;        else l=mid+1;    }if(calc(r+1)!=n) puts("-1");    else printf("%lld\n",r+1);    return 0;}
阅读全文
0 0
原创粉丝点击