Zoom 8.10 笔试分享


1. 

#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
vector<int> mp[N];
int cred[N], cblue[N], n;
string color;
ll ans;
void dfs(int u,int fa){
    cred[u] = cred[fa];
    cblue[u] = cblue[fa];
    if(color[u] == 'R'){
        cred[u]++;
    }else{
        cblue[u]++;
    }
    // cout<<u<<" "<<cred[u]<<" "<<cblue[u]<<endl;
    ans += abs(cred[u] - cblue[u]);
    for(auto v:mp[u]){
        if(v == fa) continue;
        dfs(v, u);
    }
    return;
}
int main() {
    cin >> n >> color;
    color = " "+color;
    for (int i = 0, u, v; i < n - 1; i++) {
        cin >> u >> v;
        mp[u].push_back(v);
        mp[v].push_back(u);
    }
    dfs(1,0);
    cout<<ans<<endl;
}
2. 
#include <iostream>
#include <vector>
#include <map>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
int tot, ptot;
map<string, int> name;// 公司name
map<string, int> pname;// 人name
map<int, int> mp;
int fa[N], sz[N];
int getfa(int u){
    return fa[u] != u ? fa[u] = getfa(fa[u]) : u;
}
void join(int u,int v){
    int f1 = getfa(u), f2 = getfa(v);
    if(f1 != f2){
        fa[f2] = fa[f1];
        sz[f1] += sz[f2];
        sz[f2] = 0;
    }
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int q;
    cin >> q;
    int type, m;
    string in, bu;
    tot = q;
    for(int i = 1; i <= q; i++){
        cin >> type;
        if(type == 1){
            cin >> in >> m;
            int thisroot = i;
            pname[in] = thisroot;
            fa[thisroot] = thisroot;
            sz[thisroot] = 0;
            vector<int> tonari;
            
            for(int i = 0; i < m; i++){
                cin >> bu;
                if(name.find(bu) == name.end()){
                    name[bu] = ++tot;
                    fa[name[bu]] = name[bu];
                    sz[name[bu]] = 1;
                }
                tonari.push_back(name[bu]);
                join(thisroot, name[bu]);
            }
            mp[thisroot] = tonari.size();
        }else{
            cin >> in;
            if(pname.find(in) == pname.end()){
                cout<<"error\n";
                continue;
            }
            int pid = pname[in];
            int total = sz[getfa(pid)];
            int tonari = mp[pid];
            cout<<total - tonari<<"\n";
        }
    }
}
/*
5
1 Alice 2
Zoom Apple
2 Bob
2 Alice
1 Bob 2
Apple Microsoft
2 Bob
*/



全部评论
第一题寄了,第二题ac了
点赞 回复 分享
发布于 2022-08-10 21:22
第二题我并查集40%,没有段错误也没超时😅 没想到是什么情况
点赞 回复 分享
发布于 2022-08-10 20:56
大佬牛逼
点赞 回复 分享
发布于 2022-08-10 20:56
大佬第二题并查集是怎么用上去的?
点赞 回复 分享
发布于 2022-08-10 20:42

相关推荐

评论
13
14
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
8359次浏览 76人参与
# 你的实习产出是真实的还是包装的? #
1545次浏览 39人参与
# 巨人网络春招 #
11281次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7300次浏览 40人参与
# 简历第一个项目做什么 #
31444次浏览 320人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186719次浏览 1118人参与
# MiniMax求职进展汇总 #
23603次浏览 305人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152201次浏览 887人参与
# 研究所笔面经互助 #
118829次浏览 577人参与
# 重来一次,我还会选择这个专业吗 #
433235次浏览 3926人参与
# 简历中的项目经历要怎么写? #
309862次浏览 4177人参与
# 面试紧张时你会有什么表现? #
30460次浏览 188人参与
# 你今年的平均薪资是多少? #
212910次浏览 1039人参与
# AI时代,哪些岗位最容易被淘汰 #
63173次浏览 784人参与
# 我的求职精神状态 #
447925次浏览 3128人参与
# 你最满意的offer薪资是哪家公司? #
76352次浏览 374人参与
# 正在春招的你,也参与了去年秋招吗? #
363053次浏览 2635人参与
# 你怎么看待AI面试 #
179703次浏览 1220人参与
# 牛客AI文生图 #
21391次浏览 237人参与
# 职能管理面试记录 #
10773次浏览 59人参与
# 网易游戏笔试 #
6422次浏览 83人参与
# 腾讯音乐求职进展汇总 #
160527次浏览 1109人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务