/*
*    题目描述:
        幼儿园老师安排小朋友做游戏,现在需要给N个小朋友进行分组,老师让每个同学写一个名字,代表这位小朋友
        想和谁分到一组,请问老师在满足所有小朋友意愿的情况下,最多可以将班级分成多少组?
    输入描述:
        第一行输入N,0<N<=100000
        接下来的N行代表每个小朋友希望和谁分到一组,如“John Jack”,代表John希望和Jack分到一组,两个名字之间
        以空格分割,名字本身不存在空格
    输出描述:
        分组的最多数量

   示例:

输入:

3

Tom John

John Jane

Jane Tom

输出:

1

*


说明:华为0407第一题

考察知识点:并查集


解题思路:

1、使用hash表建立每个小朋友的父节点关系表;

2、输出有几个连通图


代码如下:

#include<iostream>
#include<unordered_map>
#include<string>
using namespace std;
class UF {
private:unordered_map<string, string> fri;//vector<string> fri;int circle;
public:UF(int person_num) {circle = person_num;}void add(string s) {//fri.push_back(s);if (fri.find(s) == fri.end()) fri[s] = "";}string find(string s) {if (fri[s] == "") return s;string root = s;while (fri[root] != "") {root = fri[root];}string pre_father;while (root != s) {pre_father = fri[s];fri[s] = root;s = pre_father;}return root;}void connect(string s1, string s2) {if (find(s1) == find(s2)) return;string root_1 = find(s1);string root_2 = find(s2);fri[root_1] = root_2;circle--;}int getCircle() {return circle;}
};int main() {int N;cin >> N;string f1, f2;UF uf(N);for (int i = 0; i < N; ++i) {// john jackcin >> f1 >> f2;uf.add(f1);uf.add(f2);uf.connect(f1, f2);}cout << uf.getCircle() << endl;
}

【秋招机试真题】华为机试0407-1-幼儿园小朋友分组相关推荐

  1. 【华为OD机试真题 JAVA】寻找身高相近的小朋友

    JS版:[华为OD机试真题 JS]寻找身高相近的小朋友​​​​​​​ 标题:寻找身高相近的小朋友 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限 小明今年升学到小学一年级,来到新 ...

  2. 2019年字节跳动2020届秋招在线笔试真题(后端开发工程师)

    2019年字节跳动2020届秋招在线笔试真题(后端开发工程师) 第一题 第二题 第三题 第四题 第一题 第二题 第三题 第四题 字节跳动的题,对于我这个菜鸟来说确实很难,对一半都做不到.还得继续努力啊 ...

  3. 2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案

    2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案 1.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. ...

  4. 【互联网大厂机试真题 - 华为】九宫格

    前言:本专栏将持续更新互联网大厂机试真题,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于大厂机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steve ...

  5. 【互联网大厂机试真题 - 华为】统计表达式计算时间

    前言:本专栏将持续更新互联网大厂机试真题,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你.关于大厂机试流程.面经.面试指导等,如有任何疑问,欢迎联系我,wechat:steve ...

  6. 2021字节跳动校招秋招算法面试真题解题报告--leetcode148 排序链表,内含7种语言答案

    148.排序链表 1.题目描述 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序 2.解题报告 针对nlogn的排序算法,主要有快速排序,归并排序和堆排序.其中,堆排序利用了数 ...

  7. 华东师范大学计算机模拟试题,华东师范大学计算机机试真题

    华东师范大学计算机机试真题 2009机试2 计算和的数位2 大写改小写3 素数对4 求最大公约数和最小公倍数6 排序后求位置处的数7 *路由器连接8 *编译原理10 *分开连接13 2010机试17 ...

  8. 【华为机试真题 Python实现】2022年4、5月高频机试题

    文章目录 2022年4.5月高频机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值 ...

  9. 【华为机试真题 Python实现】2022年4季度最新机试题

    文章目录 2022年4季度最新机试题 机试必须要会的函数 输入输出处理 for 循环 通过下标访问元素 直接迭代访问元素 同时访问下标和元素 while 循环 字符ASSIC码转换 进制转换 绝对值计 ...

  10. [华为机试真题][2014]62.去除重复字符并排序

    题目 描述: 去除重复字符并排序 运行时间限制: 无限制 内容限制: 无限制 输入: 字符串 输出: 去除重复字符并排序的字符串 样例输入: aabcdefff 样例输出: abcdef 代码 /*- ...

最新文章

  1. android11有哪种手机,支持安卓11系统的机型有哪些
  2. P1631 序列合并
  3. 快速在PowerPoint文档中添加图表
  4. JavaScript 返回多个值
  5. Learning to Rank中Pointwise关于PRank算法源码实现
  6. IdentityServer4【Introduction】之支持的规范
  7. 液相色谱柱PHP,C18液相色谱柱 - 食品仪器分析 - 食品论坛 - Powered by Discuz!
  8. MySQL索引对NULL值的处理
  9. 线性表、顺序表和链表,你还分不清?
  10. 全网独家:LINUX登录桌面后,如何自动运行自己的应用程序
  11. 113.库存明细账案例(包含结存数)
  12. 用python做动画的代码_Python应用 | 三行代码实现GIF动画
  13. 一、PHP基础-安装PHP集成环境
  14. 房屋出租系统(第一版)
  15. [IPhone] 如何将制作图片放大缩小的动作
  16. 周鸿祎:360 基本不触碰用户数据;苹果与亚马逊被指控合谋推高 iPhone 等产品价格|极客头条
  17. linux jnlp显示异常,使用headless jnlp将slave连接到master时显示异常
  18. 输入电阻、输出电阻、特性阻抗、阻抗匹配
  19. i am freshman
  20. Java中浮点数原理及精度丢失问题

热门文章

  1. 计算机主机突然断电有什么影响,台式机突然断电有什么危害
  2. 无序列表举例html,HTML中的无序列表讲解(菜鸟)
  3. 让mysql支持emoji表情_让MySQL支持Emoji表情 mysql 5.6
  4. 背书吧 2021.1.10日记
  5. 优麒麟mysql_Ubuntu kylin优麒麟下配置Hive环境
  6. 【英语天天读】优秀的标准
  7. 读论文:SELFEXPLAIN: A Self-Explaining Architecture for Neural Text Classifiers
  8. 笔记本突然无线和有线都不能使用
  9. 解决浏览器滚动条导致的页面闪烁问题
  10. python 响铃_python响铃符不响_python语法注意事项