继续搞这道题!!!.py

看这个贴
daima

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[200005],a1[200005], idx;    ll n, m;
bool check(ll x){
    if(x*x*x>=m) return 1;
    else return 0;
}
int main(){
    ll t;
    cin >> t;
    while(t--){
        cin >> n;
        ll b=1;
        for(ll i=1;i<n;i++){
            m=n-i*i*i;
            ll l=0;
            ll r=m;
            ll mid;
            while(r-l>0){
                mid=(l+r)/2;
                if(check(mid)){
                    r=mid;
                }
                else{
                    l=mid+1;
                }
            }
            if(r==0) b=0;
        }
        if(b) cout << "YES" << endl;
        else cout<<"NO" << endl; 
    }
}

净给我TLE!!

1 个赞

有人吗 @卡皮巴拉 @冯俊骁

1 个赞

@CZF2919 ZAI吗

1 个赞

bushi,发题面,链接我点不进去

1 个赞

adui,你好像普及+了

1 个赞

image

1 个赞

最新代码!

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[200005],a1[200005], idx;    ll n, m;
bool check(ll x){
    if(x*x*x>=m) return 1;
    else return 0;
}
int main(){
    ll t;
    cin >> t;
    while(t--){
        cin >> n;
        ll b=1;
        for(ll i=1;i<n;i++){
            m=n-i*i*i;
            ll l=0;
            ll r=m;
            ll mid;
            while(r>l){
                mid=(l+r)/2;
                if(check(mid)){
                    l=mid+1;
                }
                else{
                    r=mid;
                }
            }
            if(r==0) b=0;
        }
        if(b) cout << "YES" << endl;
        else cout<<"NO" << endl; 
    }
}
1 个赞

TLE?

1 个赞

啊对!

1 个赞

@刘子睿 给数据范围

![image|193x75](upload://zYUoMyXrvCYt21F4Qjuaj9fyyGJ.png)

1 个赞

image

1 个赞

应该不是这个问题吧。。。样例就TLE

1 个赞

image

1 个赞

image

1 个赞

image
最坏的时间复杂度是 O(T*X)

你这个二分就超了

image

for(ll i=1;i*i*i<=n;i++

1 个赞

@刘子睿
或者你加个判断