import java.util.*;

public class Main {

private static int n;   //人数

private static int m;   //语言数

private static int k;   //已知的信息数

private static int[] parent;    //并查集

private static int[] peopleToLanguage;

private static Map> peopleToLanguageMap = new HashMap<>();   //根据人将语言分群

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

n = scanner.nextInt();

m = scanner.nextInt();

k = scanner.nextInt();

peopleToLanguage = new int[n];

Arrays.fill(peopleToLanguage, -1);

parent = new int[m];

for (int i = 0; i

parent[i] = i;  //每一种语言单独一个集合

}

boolean[] show = new boolean[m];

for (int i = 0; i

int people = scanner.nextInt();

int language = scanner.nextInt() - 1;

peopleToLanguage[people - 1] = language;

if (peopleToLanguageMap.containsKey(people - 1)) {

peopleToLanguageMap.get(people - 1).add(language);

} else {

List list = new ArrayList<>();

list.add(language);

peopleToLanguageMap.put(people - 1, list);

}

show[language] = true;

}

int result = 0;

for (int i = 0; i

if (peopleToLanguage[i] == -1) { //不会任何语言的人,肯定需要学习一种语言

result++;

}

}

for (List list : peopleToLanguageMap.values()) {

for (int i = 0; i

unionTwo(list.get(i), list.get(i + 1));

}

}

Set parentSet = new HashSet<>();

for (int i = 0; i

if (show[i]) {

parentSet.add(findParent(i));

}

}

if (parentSet.size() != 0) {

result += parentSet.size() - 1;

}

System.out.print(result);

}

private static int findParent(int x) {

int a = x;

while (x != parent[x]) {

x = parent[x];

}

while (a != parent[x]) {

int z = a;

a = parent[a];

parent[z] = x;

}

return x;

}

private static void unionTwo(int a, int b) {

int aParent = findParent(a), bParent = findParent(b);

if (aParent != bParent) {

parent[aParent] = bParent;

}

}

}

顺丰科技高级java面试_顺丰科技-Java笔试编程题-均ac相关推荐

  1. 蘑菇街 java 面试_校招|蘑菇街java后端三面

    作者:TheBestLee 来源:牛客网感谢牛客平台提供的机会,校招也经历了一个多月,对于双非非科班的大学生来讲,想找一份大厂的工作确实有些困难(除开那些特别优秀的啊),终于经历三轮面试终于拿到了蘑菇 ...

  2. 税友软件公司java面试_税友集团java面试题

    答案 一 选择题 1  D   , 2 AD  ,   3 C   ,  4 AB  , 5 AG 6 A   , 7 C ,       8 ABC ,  9 A , 14 A , 15 CB , ...

  3. 阿里巴巴菜鸟java面试_阿里巴巴菜鸟包裹java面试总结

    jvm的基本原理,分为几块 https://www.cnblogs.com/dingyingsi/p/3760447.html 事务有几个等级 https://blog.csdn.net/liwenx ...

  4. 京东校招java笔试题_京东2018校招技术笔试编程题汇总

    1.回文 分析 暴力枚举一下check回文,可以确定出最后答案的一半,就可以得到答案了. 参考代码 #include using namespace std; bool isPalindrome(st ...

  5. Java——快手2020校园招聘秋招笔试--[编程题]运动会

    题目: 一年一度的快手运动会又要开始了,同学们终于有一天可以离开鼠标键盘显示器,全身心的投入到各种体育项目中.UED设计师小红虽然没有参加体育项目,但她的责任重大,因为她是拉拉队的队长,她需要在每个项 ...

  6. Java——快手2020校园招聘秋招笔试[编程题]质因数统计

    题目: 我们知道每一个大于1的整数都一定是质数或者可以用质数的乘积来表示,如10=2*5.现在请设计一个程序,对于给定的一个(1,N] 之间的正整数(N取值不超过10万),你需要统计(1,N] 之间所 ...

  7. java面试总结(一)-----如何准备Java初级和高级的技术面试

    java面试总结(一)--如何准备Java初级和高级的技术面试 本文内容来自:https://mp.weixin.qq.com/s?__biz=MzAxNDMwMTMwMw==&mid=224 ...

  8. Java继承_这10道Java面试题!大部分的人回答不出来

    1.为什么等待和通知是在 Object 类而不是 Thread 中声明的? 2.为什么Java中不支持多重继承? 3.为什么Java不支持运算符重载? 4.为什么 String 在 Java 中是不可 ...

  9. Java 面试必问题目,Java 后端校招面试题

    字节跳动一面: 自我介绍,主要讲讲做了什么和擅长什么 看你项目做 Spring 比较多, 问一下 Spring 相关的东西, IoC 是什么概念? Bean 的默认作用范围是什么?其他的作用范围? 索 ...

最新文章

  1. 如何matlab导入邻接矩阵,“excel如何做矩阵“matlab中读取excle中的邻接矩阵
  2. 已知/未知宽高的浮动元素水平居中对齐 和 图片水平垂直居中对齐
  3. 详解各种锁:CAS、共享锁、排它锁、互斥锁、悲观锁、乐观锁、行级锁、表级锁、页级锁、死锁、JAVA对CAS的支持、ABA问题、AQS原理
  4. Python 爬虫进阶六之多进程的用法
  5. vue点击切换类名_vue 新用户引导(vue-dirver)
  6. netty心跳过程中 发送消息失败_netty心跳机制和断线重连(四)
  7. 开机自检BIOS语言详解
  8. NLP之电影评分数据的情感分析
  9. [转] Async/Await替代Promise的6个理由
  10. 高等代数期末考试题库及答案_高等代数II答案试题题目及答案,期末考试题库,章节测验答案...
  11. QQ群发精灵V3.2
  12. python的对文档密码的简单破解
  13. 老毛桃发帖子 去广告
  14. cve-2018-1273复现思路及简单利用(避坑)
  15. python基础入门练习(字符串练习)
  16. ESP32 烧录出厂固件
  17. 乐视电商云的整体架构与技术实现
  18. Android 6.0 状态栏信号图标分析
  19. Java 的垃圾回收
  20. 关于开源软件License的说明

热门文章

  1. 企业做培训直播,也不要忘记品牌营销!
  2. javascript小案例-----快递单号查询
  3. linux系统进入退出vim编辑器及termux修改问候语
  4. 1,clouderaManager 介绍 : 免费版介绍
  5. [SHOI2003]吃豆豆(dp+拓扑排序)
  6. 1-13 RHEL7-硬盘介绍和磁盘管理
  7. less和scss的区别
  8. macOS spotlight 聚焦 搜索范围自定义
  9. 《深入浅出图神经网络--GNN原理解析》一些概念【待整理完】
  10. 网易技术:手游频繁崩溃”闪退”的原因是什么?