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();
    // }
}

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务