2 solutions

  • 1
    @ 2025-12-27 11:43:20

    解题报告

    撰写人: ༺༺劳༒大༻༻

    题意分析

    找到一个最小的整数x, 使得x同时满足如下条件: (1)x >=n。 (2)存在两个非负整数a和b,使得满足x = aaa + aab + abb + b* b*b。

    解题思路

    二分

    解题反思

    二分

    参考程序

    #include<bits/stdc++.h>
    using namespace std;
    long long n,x,ans=1e18+1;
    long long check(long long x,long long y){
        return x*x*x+x*x*y+x*y*y+y*y*y;
    }
    int main(){
        cin>>n;
        for(long long i=0;i<=pow(n,1.0/3.0)+1;i++){
            long long l=0,r=pow(n,1.0/3.0)+1;
            while(l<=r){
                long long mid=(l+r)/2;
                if(check(mid,i)>=n){
                    r=mid-1;
                    ans=min(ans,check(mid,i));
                }
                else l=mid+1;
            }
        }
        cout<<ans;
        return 0;
    }
    

    Information

    ID
    736
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    10
    Tags
    # Submissions
    7
    Accepted
    3
    Uploaded By