网易 c++

网易笔试编程题 —
#include <iostream>
#include <vector>
using namespace std;

int main(){
    int n, m, s;
    cin >> n >> m >> s;
    vector<int> v;
    v.push_back(0);
    for(int i = 0; i < n; i++){
        v.push_back(n-1);
    }
    int i;
    for(i = 0; i < m; i++){
        if(v[s] == 0){
            break;
        }
        int x,y;
        cin >> x >> y;
        if(x == 0){
            v[y] = 0;
        }else if(v[y] == 0){
            v[x]--;
        }
        else{
            v[x]--;
            v[y]--;
        }
    }
    if(i == m){
        cout << "0";
    }else{
        cout << i;
    }
    return 0;
}



第二道 a了60%  没想出来
#include <iostream>
#include <vector>
using namespace std;

int main(){
    int n, m, f;
    cin >> n >> m >> f;
    vector<bool> v;
    for(int i = 0; i < n; i++){
        v.push_back(0);
    }
    v[f] = 1;
    bool flag = false;
    for(int i = 0; i < m; i++){
        int num;
        cin >> num;
        vector<int> m;
        for(int j = 0; j < num; j++){
            int val;
            cin >> val;
            m.push_back(val);
            if(v[val] == 0){
                continue;
            }else if(v[val] == 1){
                flag = true;
            }
        }
        if(flag == true){
            for(int k = 0; k < m.size(); k++){
                v[m[k]] = 1;
            }
        }
        flag = false;
    }
    int count = 0;
    for(int i = 0; i < v.size(); i++){
        if(v[i] == 1){
            count++;
        }
    }
    cout << count << endl;
    return 0;
}


第三道不会 第四题不会

第三题渣暴力,四层循环,全过一遍,错了应该,想不出好算法
#include <iostream>
#include <vector>
using namespace std;

int main(){
    int n, m, f;
    cin >> n >> m >> f;
    vector<bool> v;
    for(int i = 0; i < n; i++){
        v.push_back(0);
    }
    v[f] = 1;
    bool flag = false;
    for(int i = 0; i < m; i++){
        int num;
        cin >> num;
        vector<int> m;
        for(int j = 0; j < num; j++){
            int val;
            cin >> val;
            m.push_back(val);
            if(v[val] == 0){
                continue;
            }else if(v[val] == 1){
                flag = true;
            }
        }
        if(flag == true){
            for(int k = 0; k < m.size(); k++){
                v[m[k]] = 1;
            }
        }
        flag = false;
    }
    int count = 0;
    for(int i = 0; i < v.size(); i++){
        if(v[i] == 1){
            count++;
        }
    }
    cout << count << endl;
    return 0;
}

第四题。。。和问答题第二道没碰。。。对外部排序还是不咋熟

#网易2020春招简历投递开始##网易##笔试题目#
全部评论
&第一题数据有问题,第二题给出的还不是按时间排的,第三题没数据范围,第四题估计数据也有问题,妙啊妙啊,猪场出了一份好题
1 回复 分享
发布于 2020-04-07 21:24
这套题数据有问题吧。第一题只有是0的情况输出0?其他情况不用输出?
点赞 回复 分享
发布于 2020-04-07 21:04
第二题聚会的顺序应该不是按照时间顺序吧
点赞 回复 分享
发布于 2020-04-07 21:04
第四题直接输出-1,5%
点赞 回复 分享
发布于 2020-04-07 21:08
&第一题不是题目里面说他想知道自己的城市最早封城的时间吗?为什么除了0的都不用输出?
点赞 回复 分享
发布于 2020-04-07 21:10
第一题对吗?如果有四个城市 1.2.3.4 s是1  。。2 ,3,4封城那还是会输出0啊
点赞 回复 分享
发布于 2020-04-07 21:10
聚会跑完一遍60% 如果时间随机的话,在重新跑一遍82%
点赞 回复 分享
发布于 2020-04-07 21:11
第二题就是并查集,我唯一一个ac的题。。
点赞 回复 分享
发布于 2020-04-07 21:12
这套题目做的怀疑人生
点赞 回复 分享
发布于 2020-04-07 21:13
第一题和第三题我觉得我都没问题,第三题动态规划加字符串求整除,但是通过是0
点赞 回复 分享
发布于 2020-04-07 21:14
第四题有不是5%的吗?说一下做法,用优先队列BFS,这样子做法肯定没错啊
点赞 回复 分享
发布于 2020-04-07 21:15
4 3 1 0 2  0 3  0 4  这一题 如果这个样例 的话 输出了0, 不应该是0吧 是我没理解题意吗
点赞 回复 分享
发布于 2020-04-07 21:18
第一题不对啊,你y城封掉了跟其他城市一点关系也没有的吗,就y的入度要变0,那我除f城之外全封掉,不是相当于f城也封掉了
点赞 回复 分享
发布于 2020-04-07 21:20
5 9 1 0 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 这个数据根据博主的代码输出5,但是根据题意不应该输出5吧?
点赞 回复 分享
发布于 2020-04-07 21:33

相关推荐

4 9 评论
分享
牛客网
牛客企业服务