2022-08-20-网易笔试84.4分(已挂)

题目私聊

// 84.4 分
// 第1题
// 40min 93.33% 15'
#include <iostream>
#include <vector>
#include <unordered_set>
#include <string>
#include <cstring>
using namespace std;

unordered_set<int> deleteOne(unordered_set<int> last){
    unordered_set<int> ans=last;
    for(auto i:last){
        string istr = to_string(i);
        if(istr.length()==1)
            continue;
        for(int j=0;j<istr.length();j++){
            string dstr;
            if(j>0)
                dstr=istr.substr(0,j);
            if(j!=istr.length()-1)
                dstr.append(istr.substr(j+1,istr.length()-j-1));
//             cout<<istr<<", "<<dstr<<"\n";
//             cout<<dstr<<"\n";
            int toi=stoi(dstr);
            ans.insert(toi);
        }
    }
    return ans;
}

int main() {
    int a,b;
    cin>>a>>b;
    if(a>b)
        swap(a,b);
    else if(a==b){
        cout<<0;
        return 0;
    }
    if(b%a==0){
        cout<<0;
        return 0;
    }
    unordered_set<int> aa[10],bb[10];
    aa[0].insert(a);
    bb[0].insert(b);
    for(int i=a,j=1;i>9;i/=10,j++){
        aa[j]=deleteOne(aa[j-1]);
    }
    for(int i=b,j=1;i>9;i/=10,j++){
        bb[j]=deleteOne(bb[j-1]);
    }
    string bs=to_string(b);
    string as=to_string(a);
    int bl=bs.length();
    int al=as.length();
    for(int i=1;i<al+bl-1;i++){
        for(int ad=0;ad<=i&&ad<al;ad++){
            int bd = i-ad;
            for(auto ai:aa[ad])
                for(auto bi:bb[bd])
                    if(ai%bi==0||bi%ai==0){
                        cout<<i;
                        return 0;
                    }
        }
    }
    cout<<-1;
    return 0;
}

// 第2题
// 9min 100% 20'
#include <iostream>
#include<vector>
using namespace std;
typedef long long int  lli;

int main() {
    int n;cin>>n;
    vector<int> v(n);
    for(int i=0;i<n;i++)
        cin>>v[i];
    if(n==1){
        cout<<0;
        return 0;
    }

    int maxe=v[0];
    for(int i=2;i<n;i+=2)
        if(maxe<v[i]){
            maxe=v[i];
        }
    int maxo=v[1];
    for(int i=3;i<n;i+=2)
        if(maxo<v[i]){
            maxo=v[i];
        }
    if(maxo==maxe){
        maxe++;
    }
    lli ans=0;
    for(int i=0;i<n;i+=2)
        ans+=maxe-v[i];
    for(int i=1;i<n;i+=2)
        ans+=maxo-v[i];
    cout<<ans;
    return 0;
}

// 第3题
// 21min 73.68% 30'
#include <iostream>
#include <cstdio>
#include<string>
#include<vector>
using namespace std;

int main(){
    string s;
    cin>>s;
//     if(s.length()==6)//12345678
//     {
//         cout<<1;
//         return 0;
//     }
    int n=s.length();
    if(n<3){
        cout<<0;
        return 0;
    }
    int t=0;
    for(int i=1;i<n-1;i+=2){
        if(s[i]!='e')
            t++;
    }
    // r-e-d
    int red=0;
    for(int i=0;i<n;i+=4)
    {
        if(s[i]!='r')
            red++;
        if(i+2<n&&s[i+2]!='d')
            red++;
    }
    int der=0;
    for(int i=0;i<n;i+=4){
        if(s[i]!='d')
            der++;
        if(i+2<n&&s[i+2]!='r')
            der++;
    }
    t=t+min(red,der);
    if((n-1)%2==0)
    {
        cout<<t;
        return 0;
    }

    int g=0;
    for(int i=2;i<n-1;i+=2){
        if(s[i]!='e')
            g++;
    }
    // _-r-e-d
    red=0;
    for(int i=1;i<n;i+=4)
    {
        if(s[i]!='r')
            red++;
        if(i+2<n&&s[i+2]!='d')
            red++;
    }
    der=0; // _-d-e-r
    for(int i=1;i<n;i+=4){
        if(s[i]!='d')
            der++;
        if(i+2<n&&s[i+2]!='r')
            der++;
    }
    g=g+min(red,der);
    cout << min(t,g) << endl;
    return 0;
}

// 第4题
#include <iostream>
#include<unordered_map>
#include<map>
using namespace std;

unordered_map<int,int> p;
map<int, int> c;

// 42min-- 16min 80.95% 1001ms  35'
int main() {
    int n,i;cin>>n;
    long long int ans=0;
    for(int w=0;w<n;w++){
        cin>>i;
//         cout<<"i="<<i<<", pi="<<p[i]<<", ci="<<c[i]<<"\n";
//      if(c[i]>0) // why 加了if只过 4.76%????
            ans+=p[i];
        auto it=c.upper_bound(i); // 因为这里 c 写成了 p ... 也可以过80.95%...
        int e=0;
        while(it!=c.end()&&e<701){
            e++; // 加 e 后通过率没变,但运行时间从 1001ms 下降到 380ms。。。
//             cout<<"it->first: "<<it->first<<", it->second: "<<it->second<<"\n";
            p[it->first]+=c[it->first];
            it=next(it);
        }
        c[i]++;
    }
    cout<<ans;
    return 0;
}
#网易##网易笔试##23秋招##做完网易2023秋招笔试题,我裂开了##23届秋招笔面经#
全部评论
你们有卡吗?我发卷时卡了10分钟
2 回复 分享
发布于 2022-08-20 17:11 上海
已挂
2 回复 分享
发布于 2022-09-15 16:03 香港
100% + 100% + 68% + 100%,蹲一个第三题的解法
1 回复 分享
发布于 2022-08-20 17:25 北京
你们是两个小时考试时间吗,为什么有人是2个半小时
点赞 回复 分享
发布于 2022-08-20 17:05 安徽
100% + 100% + 68%路过,第四题好像都没来得及看
点赞 回复 分享
发布于 2022-08-20 17:08 江苏
谁还记得题目麻烦踢我一下。。。忘记第四题是啥了
点赞 回复 分享
发布于 2022-08-20 17:09 江苏
哥们太强了,果然这就是大佬
点赞 回复 分享
发布于 2022-08-20 17:12 天津
大佬,第一题和第四题能说一下思路吗
点赞 回复 分享
发布于 2022-08-20 17:16 广西
第三题分奇数偶数两种情况 奇数最后为两种情况: ① dered.....(dere循环) ② reder...... (rede循环) 遍历一次计算两种情况,取最小值 偶数情况: 每三个字符循环,每次变为red或者der,取最小值 大佬看看这思路对不对
点赞 回复 分享
发布于 2022-08-20 17:17 广东
100 100 73 85,第三题思路应该没问题但就是73
点赞 回复 分享
发布于 2022-08-20 17:52 福建
第二题的代码执行 11455结果是12,正确结果应该是11吧,有遇到同样问题的吗?
点赞 回复 分享
发布于 2022-08-20 19:47 北京
第一题没思路,第二题a了,第三题60%,第四题不会。我是真滴菜
点赞 回复 分享
发布于 2022-08-20 22:29 四川
恒生电子股份有限公司,登录链接:campus.hundsun.com/campus/jobs 推荐码:ESKGVT
点赞 回复 分享
发布于 2022-08-21 08:41 陕西
怎么看多少分啊
点赞 回复 分享
发布于 2022-08-21 09:39 安徽
三七互娱2023届校园招聘全面启动!! ▶全球TOP20上市游戏企业、A股行业龙头企业、国家文化出口重点企业、国内海外双轮驱动,跻身中国游戏出海厂商前五。 📮热招岗位: 游戏运营类、美术设计类、市场推广类、技术开发类 Base:广州 🈸投递方式: PC端:登录三七互娱招聘官网 zhaopin.37.com选择岗位投递; 移动端:关注“三七互娱招聘”微信公众号点击“我要应聘-校园招聘” 📡内推码投递,享简历优先筛选/免筛选直通笔试:(内推码:DSH6dTeU)
点赞 回复 分享
发布于 2022-08-21 15:33 广东
想看题目+1
点赞 回复 分享
发布于 2022-08-21 22:20 上海
理想汽车2023提前批校招目前已开启,有打算找工作的师弟师妹们,可以通过以下链接内推投递,全程进度跟随,无笔试。 https://www.nowcoder.com/discuss/1008400
点赞 回复 分享
发布于 2022-08-21 23:29 北京
第四题是什么思路啊?
点赞 回复 分享
发布于 2022-08-22 08:26 河南

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
17
13
分享
牛客网
牛客企业服务