题目描述

给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号。另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, timei] 表示专家 xi 和专家 yi 在时间 timei 要开一场会。一个专家可以同时参加 多场会议 。最后,给你一个整数 firstPerson 。

专家 0 有一个 秘密 ,最初,他在时间 0 将这个秘密分享给了专家 firstPerson 。接着,这个秘密会在每次有知晓这个秘密的专家参加会议时进行传播。更正式的表达是,每次会议,如果专家 xi 在时间 timei 时知晓这个秘密,那么他将会与专家 yi 分享这个秘密,反之亦然。

秘密共享是 瞬时发生 的。也就是说,在同一时间,一个专家不光可以接收到秘密,还能在其他会议上与其他专家分享。

在所有会议都结束之后,返回所有知晓这个秘密的专家列表。你可以按 任何顺序 返回答案。

思路分析

  • 多源bfs
  • ac之前超时的原因:每次的"源"有问题,可能在一次时间点,并不是所有的专家都参与了传播的作用,要在一次循环开始进行筛选即可

代码如下

#define inter(i) for(int i=0;i<n;i++)
#define interS(i,t) for(auto &t:i)
using Relation=map<int,unordered_map<int,vector<int>>>;
class Solution {
public:vector<int> s,vis;vector<int> findAllPeople(int n, vector<vector<int>>& meetings, int firstPerson) {vector<int> v(n);  //记录知晓的专家编号v[0]=1; v[firstPerson]=1;Relation mp2;  //保存相同时间的关系图interS(meetings,t){mp2[t[2]][t[1]].push_back(t[0]);mp2[t[2]][t[0]].push_back(t[1]);}for(auto &&[_,t]:mp2){int flag=0;queue<int> q;interS(t,i)if(v[i.first]==1)q.push(i.first);while(!q.empty()){auto topQ=q.front();interS(t[topQ],t2){if(!v[t2]){v[t2]=1;q.push(t2);}}q.pop();}}inter(i)if(v[i]==1) s.push_back(i);return s;}
};

找出知晓秘密的所有专家相关推荐

  1. 5941. 找出知晓秘密的所有专家

    给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号.另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, timei] 表 ...

  2. LeetCode 2092. 找出知晓秘密的所有专家(并查集)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号. 另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meeting ...

  3. 找出知晓秘密的所有专家(leetcode 2092)

    题目描述 给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号.另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, tim ...

  4. 警惕AI军事间谍!找出导弹基地人类用2.5天,AI只要42分钟

    安妮 千平 编译整理 量子位 出品 | 公众号 QbitAI 就在我们的头顶之上,各种卫星(包括间谍卫星)像狗仔队一样,每天都围着地球疯狂拍下数十TB的照片.这个数量可以说是泛滥了. 每个情报机构都有 ...

  5. 3个月时间,5名黑客找出苹果55个漏洞,赚了5万多美元,还写了篇博客记录全程

    大数据文摘出品 作者:刘俊寰.朱科锦.lin 昨天,翘首期待的iPhone12终于面世,不管是回归经典方框设计,还是首次推出小屏mini版,都让苹果玩家大呼过瘾. 不过,在今年这场别开生面的发布会之前 ...

  6. 亡羊补牢or防患未然?在数百套多种数据库中找出风险点(附PPT下载)

    墨墨导读:2020数据技术嘉年华于11月21日落下帷幕,大会历时两天,来自全国各地的数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者相聚北京,见证了个人的快速成长.技术的迭代进步.行业的蓬勃发 ...

  7. 一招教你玩转SQL:通过找出数据的共同属性实现SQL需求

    关注我们,下载更多资源 预告:12月22日,ACOUG 联合创始人及多位核心专家将欢聚一堂,为"关键词解析2018技术圈的那些事儿"为主题的分享讨论,欢迎大家踊跃报名参会. 点击& ...

  8. 核心微生物分析_基因测序找出肠道核心微生物群

    基因测序找出肠道核心微生物群 有助于建立评价标准判断多种疾病 2016-05-19科技日报 常丽君 [字体:大 中 小] 语音播报 人类肠道中有数以万亿计的微生物,也称为肠道菌群,与多种疾病如肠炎.肥 ...

  9. 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵

    来自量子位 下面这张图,你能看出来,这首诗妙在哪里吗? 其实,横着读是一首诗,竖着读还是这首诗! 而且,这首诗可不是乱编的,其中的诗句都来自<全唐诗>,读起来也颇有意境. 创造这个奇妙组合 ...

最新文章

  1. 算法(掘金上经典的文档)
  2. 学习笔记《Java多线程编程实战指南》四
  3. MIRO/MIR7有何差别
  4. php接收rs485的数据如何处理,为什么485不能连续接收?
  5. java数据库连接类,已经把数据库操作的方法都封装好了
  6. java.awt.api_Java SE 11(18.9)中的API更新
  7. 整型与布尔型的转换(信息学奥赛一本通-T1022)
  8. 使用 Helm - 每天5分钟玩转 Docker 容器技术(163)
  9. 百度地图和solr展示资源和附近等功能的实现 二
  10. tcgetattr学习
  11. 2. JavaScript Boolean 对象
  12. mvc 调试 f12 浏览器闪退
  13. sao java_Java开发中的几种对象的说明(PO,VO,DTO,BO,POJO,DAO,SAO等)
  14. 利用oc门或od门实现线与_TTL,CMOS,OC门,OD门的理解
  15. oracle golden gate 价格,Oracle GoldenGate
  16. [娱乐]帝国时代I:罗马复兴秘籍
  17. linux驱动开发总体结构,设备结构体分析
  18. 小米12、小米12x和小米12pro的区别
  19. 大学四年到阿里技术专家,我是怎么走过来的
  20. 基于声音的击键信号识别

热门文章

  1. Linux搭建泰拉瑞亚(原版/模组/插件)服务器之1.3模组服务器
  2. CS和IP寄存器的作用及执行分析
  3. 页面练习my blog day51
  4. 谷歌想要返华,但却陷入了尴尬境地
  5. 浅谈:6sigma与Minitab_北京八方在线Minitab代理商
  6. RabbitMQ 开发时指定消息消费者的方式
  7. 今日头条搜索有站长平台!
  8. android热修复技术tinker,Android热修复方案第一弹——Tinker篇
  9. JAVA面向对象编程——学生喂养三种宠物:猫、狗和鸟
  10. html5脑图_使用HTML5技术绘制思维导图