L题 与能过的代码构造的是一模一样的 但是只通过76.47%

如题,以下是我的代码,其中get()是我的构造,get2()是我看有人ac的代码,两个构造出来的数组是一样的。。但是没ac

#include <bits/stdc++.h>

using namespace std;
typedef long long LL;
const int N = 1e6 + 10;
vector<int> a,b,c;
vector<int> a2,b2,c2;
// bool vis[5*N];

void get(){
    int ai=1,bi=2,ci=4;
    a.push_back(ai);
    b.push_back(bi);
    c.push_back(ci);
    bool f=1;
    while (ci<=1e6)
    {
        if(f){
            ai+=2;
            ci+=2;
        }
        else{
            ai+=4;
            ci+=4;
        }
        bi+=3;
        a.push_back(ai);
        b.push_back(bi);
        c.push_back(ci);
        if(f) f=0;
        else f=1;
    }
    
}

void get2(){
    int n=1e6;
    int ans=1e6/3;
    for(int i=0;i<ans;i++){
            if(n%6==3&&i==ans-2){
                a2.push_back(i*3);
                b2.push_back(2+i*3);
                c2.push_back(6+i*3);
            }
            else if(n%6==3&&i==ans-1){
                a2.push_back(1+i*3);
                b2.push_back(2+i*3);
                c2.push_back(i*3);
            }
            else if(i%2==0){
                a2.push_back(1+i*3);
                b2.push_back(2+i*3);
                c2.push_back(4+i*3);
            }
            else{
                a2.push_back(i*3);
                b2.push_back(2+i*3);
                c2.push_back(3+i*3);
            }
        }
}

void solve(){
    int n;
    cin>>n;
    int sz = a.size();
    int l=0,r=sz-1;
    while (l<r)
    {
        int mid = l+r>>1;
        if(c[mid]>n) r=mid;
        else l=mid+1;
    }
    
    // auto it = upper_bound(c.begin(), c.end(), n);
    int cnt= l+1;
    cout<<cnt<<endl;
    for(int i=0;i<cnt;i++){
        cout<<a[i]<<" "<<b[i]<<" "<<c[i]<<endl;
    }
}

void cmp(){
    for(int i=0;i<a2.size();i++){
        if(a[i]!=a2[i]||b[i]!=b2[i]||c[i]!=c2[i]){
            cout<<i<<" "<<a[i]<<" "<<b[i]<<" "<<c[i]<<"\t";
            cout<<i<<" "<<a2[i]<<" "<<b2[i]<<" "<<c2[i]<<endl;
        }
    }
}


int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    // int T;
    // cin>>T;
    get();
    get2();
    cmp();
    // while(T--){
    //     solve();
    // }
}

全部评论

相关推荐

吴offer选手:我卡在笔试才是最好笑的,甚至没给我发过笔试链接
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务