找出知晓秘密的所有专家
题目描述
给你一个整数 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;}
};
找出知晓秘密的所有专家相关推荐
- 5941. 找出知晓秘密的所有专家
给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号.另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, timei] 表 ...
- LeetCode 2092. 找出知晓秘密的所有专家(并查集)
文章目录 1. 题目 2. 解题 1. 题目 给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号. 另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meeting ...
- 找出知晓秘密的所有专家(leetcode 2092)
题目描述 给你一个整数 n ,表示有 n 个专家从 0 到 n - 1 编号.另外给你一个下标从 0 开始的二维整数数组 meetings ,其中 meetings[i] = [xi, yi, tim ...
- 警惕AI军事间谍!找出导弹基地人类用2.5天,AI只要42分钟
安妮 千平 编译整理 量子位 出品 | 公众号 QbitAI 就在我们的头顶之上,各种卫星(包括间谍卫星)像狗仔队一样,每天都围着地球疯狂拍下数十TB的照片.这个数量可以说是泛滥了. 每个情报机构都有 ...
- 3个月时间,5名黑客找出苹果55个漏洞,赚了5万多美元,还写了篇博客记录全程
大数据文摘出品 作者:刘俊寰.朱科锦.lin 昨天,翘首期待的iPhone12终于面世,不管是回归经典方框设计,还是首次推出小屏mini版,都让苹果玩家大呼过瘾. 不过,在今年这场别开生面的发布会之前 ...
- 亡羊补牢or防患未然?在数百套多种数据库中找出风险点(附PPT下载)
墨墨导读:2020数据技术嘉年华于11月21日落下帷幕,大会历时两天,来自全国各地的数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者相聚北京,见证了个人的快速成长.技术的迭代进步.行业的蓬勃发 ...
- 一招教你玩转SQL:通过找出数据的共同属性实现SQL需求
关注我们,下载更多资源 预告:12月22日,ACOUG 联合创始人及多位核心专家将欢聚一堂,为"关键词解析2018技术圈的那些事儿"为主题的分享讨论,欢迎大家踊跃报名参会. 点击& ...
- 核心微生物分析_基因测序找出肠道核心微生物群
基因测序找出肠道核心微生物群 有助于建立评价标准判断多种疾病 2016-05-19科技日报 常丽君 [字体:大 中 小] 语音播报 人类肠道中有数以万亿计的微生物,也称为肠道菌群,与多种疾病如肠炎.肥 ...
- 太秀了!那个在 GitHub 用文言文编程的小哥,竟从 28 万行唐诗中找出了对称矩阵
来自量子位 下面这张图,你能看出来,这首诗妙在哪里吗? 其实,横着读是一首诗,竖着读还是这首诗! 而且,这首诗可不是乱编的,其中的诗句都来自<全唐诗>,读起来也颇有意境. 创造这个奇妙组合 ...
最新文章
- 算法(掘金上经典的文档)
- 学习笔记《Java多线程编程实战指南》四
- MIRO/MIR7有何差别
- php接收rs485的数据如何处理,为什么485不能连续接收?
- java数据库连接类,已经把数据库操作的方法都封装好了
- java.awt.api_Java SE 11(18.9)中的API更新
- 整型与布尔型的转换(信息学奥赛一本通-T1022)
- 使用 Helm - 每天5分钟玩转 Docker 容器技术(163)
- 百度地图和solr展示资源和附近等功能的实现 二
- tcgetattr学习
- 2. JavaScript Boolean 对象
- mvc 调试 f12 浏览器闪退
- sao java_Java开发中的几种对象的说明(PO,VO,DTO,BO,POJO,DAO,SAO等)
- 利用oc门或od门实现线与_TTL,CMOS,OC门,OD门的理解
- oracle golden gate 价格,Oracle GoldenGate
- [娱乐]帝国时代I:罗马复兴秘籍
- linux驱动开发总体结构,设备结构体分析
- 小米12、小米12x和小米12pro的区别
- 大学四年到阿里技术专家,我是怎么走过来的
- 基于声音的击键信号识别