CodeForces 689C Mike and Chocolate Thieves (二分最大化最小值)

时间:2023-03-08 16:50:00

  题目并不难,就是比赛的时候没敢去二分,也算是一个告诫,应该敢于思考……

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
long long n;
scanf("%I64d",&n);
long long left=,right=1e18,mid,num,m,s;
long long ans=-;
while(left<=right)
{
mid=(left+right)>>;
num = ;
for(long long i=;i <= ; i++)
{
m = i*i*i;
s=mid/m;
num+=s;
if(s==)break;
}
if(num==n)
ans=mid;
if(num>=n)
{
right=mid-;
}
else
{
left=mid+;
}
}
printf("%I64d\n",ans);
}