链接:https://ac.nowcoder.com/acm/contest/6629/C
来源:牛客网

题目描述
牛牛和牛妹在进行一场星球模拟游戏,游戏规则如下:

游戏地图内共有n个星球,共有m条隧道连接这些星球。每条隧道都是双向的,每两个星球间不一定只有一条隧道。现在牛牛占领了这n个星球中的p个星球,牛妹占领了这n个星球中的q的星球(每个星球最多只能被一个人占领)。现在牛牛想知道他占领的p个星球中任意一个星球,到牛妹占领的q个星球中任意一个星球,这两个星球的最短距离是多少。

示例1
输入
复制
[1],[3,4],[[1,2,7],[2,3,6],[3,4,2],[1,3,11],[2,4,3]],4
输出
复制
10
说明
距离最近的牛牛星和牛妹星是1和4,他们之间的距离为10

示例2
输入
复制
[1],[2],[],2
输出
复制
-1
说明
所有的牛牛星和牛妹星都不联通,故输出-1

备注:
对于50%的数据:
2\leq n\leq 100,0\leq m\leq 200,1\leq p\leq 5,1\leq q\leq 5,p+q\leq n,1\leq wi\leq 1e42≤n≤100,0≤m≤200,1≤p≤5,1≤q≤5,p+q≤n,1≤wi≤1e4
对于100%的数据:
2\leq n\leq 1e5,0\leq m\leq 2e5,1\leq p\leq 1e5,1\leq q\leq 1e5,p+q\leq n,min(p,q)\leq 10,1\leq wi\leq 1e42≤n≤1e5,0≤m≤2e5,1≤p≤1e5,1≤q≤1e5,p+q≤n,min(p,q)≤10,1≤wi≤1e4
相关参数意义如下
niuniu 牛牛占领的p个星球的编号
niumei 牛妹占领的q个星球的编号
path m条隧道,每条隧道有三个数分别是ui,vi,wi。ui,vi分别是隧道的两边星球的编号,wi是它们之间的距离
nn int整型 星球个数n

const int maxn=1e6+5;
int tot,xx,yy;
int vis[maxn],dis[maxn],head[maxn];
class Solution {public:/*** * @param niuniu int整型vector 牛牛占领的p个星球的编号* @param niumei int整型vector 牛妹占领的q个星球的编号* @param path int整型vector<vector<>> m条隧道,每条隧道有三个数分别是ui,vi,wi。ui,vi分别是隧道的两边星球的编号,wi是它们之间的距离* @param nn int整型 星球个数n* @return int整型*/struct node{int v,w;bool operator<(const node &a)const{return w>a.w;}};struct edge{int to,next,w;}e[maxn];void add(int x,int y,int z){e[++tot].to=y;e[tot].w=z;e[tot].next=head[x];head[x]=tot;}void dijkstra(){priority_queue<node>q;memset(dis,0x3f,sizeof(dis));dis[xx]=0;q.push(node{xx,dis[xx]});while(!q.empty()){int v=q.top().v;q.pop();if(v==yy)return ;if(vis[v])continue;vis[v]=1;for(int i=head[v];i;i=e[i].next){int u=e[i].to;int w=e[i].w;if(dis[u]>dis[v]+w){dis[u]=dis[v]+w;q.push(node{u,dis[u]});}}  }}int Length(vector<int>& nn, vector<int>& nm, vector<vector<int> >& path, int n) {for(auto &i:path){add(i[0],i[1],i[2]);add(i[1],i[0],i[2]);}xx=n+1,yy=n+2;for(auto &i:nn){add(xx,i,0);add(i,xx,0);}for(auto &i:nm){add(i,yy,0);add(yy,i,0);}dijkstra();if(dis[yy]==0x3f3f3f3f)return -1;return dis[yy];}
};

牛客编程巅峰赛S1第6场 - 黄金钻石王者 C.dijkstra相关推荐

  1. 牛客编程巅峰赛S1第6场 - 黄金钻石王者(总结)

    牛客编程巅峰赛S1第6场 - 黄金&钻石&王者(总结) A:牛牛爱奇数 题意 有一个由n个元素组成的数组,牛牛想要将所有的数都变成奇数(即:将所有的偶数都变成奇数),但是他的操作是:一 ...

  2. 牛客编程巅峰赛S1第6场 - 黄金钻石王者题解

    牛牛爱奇数 链接:https://ac.nowcoder.com/acm/contest/6629/A 来源:牛客网 题目描述 在牛牛面前放着n个数,这些数字既有奇数也有偶数,只不过牛牛对奇数情有独钟 ...

  3. 牛客编程巅峰赛S1第7场 - 黄金钻石A-B-C

    比赛链接:牛客编程巅峰赛S1第7场 - 黄金&钻石 文章目录 A.牛牛打怪兽 DFS B.牛牛的冰激凌 贪心 C.数列求值 矩阵快速幂 A.牛牛打怪兽 DFS 题意 身为屯里第一剑士的牛牛来到 ...

  4. 牛客编程巅峰赛S1第2场 - 黄金钻石 1.规律 2.bfs

    链接:https://ac.nowcoder.com/acm/contest/6357/A 来源:牛客网 题目描述 牛牛重新定义了斐波那契数列,牛牛定义f(n) = f(n-1)+f(n+1); f( ...

  5. 牛客编程巅峰赛S1第3场 - 黄金钻石 A.简单题 B.dfs C.并查集

    链接:https://ac.nowcoder.com/acm/contest/6383/A 来源:牛客网 找卧底 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语 ...

  6. 牛客编程巅峰赛S1第7场 - 黄金钻石 A.dfs B.dpC.快速幂

    链接:https://ac.nowcoder.com/acm/contest/6631/A 来源:牛客网 题目描述 题意 身为屯里第一剑士的牛牛来到训练场里闯关,由于过于勤奋,牛牛的宝剑的耐久度降到了 ...

  7. 算法题解 - 牛客编程巅峰赛S1第3场 - 黄金钻石组

    A. 找卧底 题目描述 牛牛今天和大家玩了一个新游戏,除了牛牛以外还有 n 个人参加游戏,现在这 n 个人中的每个人从 [1, n] 中选择一个数字,保证选出的数字均不重复.牛牛作为第 n + 1 个 ...

  8. 牛客编程巅峰赛S1第2场 - 青铜白银

    A.牛牛扔牌 链接:https://ac.nowcoder.com/acm/contest/6219/A 来源:牛客网 题目描述 牛牛现在有n张扑克牌,每张扑克牌都有点数和花色两部分组成.点数为'1' ...

  9. 牛客编程巅峰赛S2第5场 - 钻石王者 C.Tree III

    牛客编程巅峰赛S2第5场 - 钻石&王者 C.Tree III 题目链接 题目描述 给出一棵有n个节点的节点标号为1~n的有根树(根为第一个节点,并给出从第2个节点到第n个节点的父结点),请你 ...

最新文章

  1. einsum,一个函数走天下
  2. Yii 框架调试之CWebLogRoute
  3. tools.jar seem to ....
  4. UTF-8和BOM的一些说明
  5. java+spring+mysql配置_JAVA后台搭建(springboot+mybatis+mysql)项目搭建
  6. xtrabackup支持的engine
  7. edittext实现自动查询,刷新listview
  8. 修改环境变量后,导致一些常用命令失效,如ll,ls,vi不能用
  9. 松下机器人找原点步骤_桁架机器人在汽车座椅安装生产线中的应用
  10. 未来智能合约平台的展望
  11. 接口文档与接口文档管理工具
  12. 关于爱情和婚姻的见解
  13. 句子反转(小米2017秋招真题)
  14. 入手评测 i7 1255u和i5 1235U选哪个好
  15. 将钞票分解为多张钞票的和
  16. OpenAI打破文本和图像次元壁,提出基于对比学习的多模态预训练模型CLIP
  17. Linux的安装与系统介绍
  18. 【Python】笨方法学Python学习笔记2
  19. 哔哩哔哩 2019秋招编程题---山寨金闪闪
  20. linux 鼠标驱动

热门文章

  1. TUNED-ADM 性能调优分析
  2. ctfshow RCE极限挑战
  3. [android] 手机卫士欢迎细节和主界面
  4. System Performance Tunning Tools
  5. 基于深度学习的篮球战术数据自动采集技术研究——项目展示
  6. NOC大赛2022年原创未来赛道备赛题目二
  7. 如何才能将你每天的精力发挥出它最大的功效?
  8. Matlab打开笔记本摄像头
  9. 利用SOLR搭建企业搜索平台 之八(solr 实现去掉重复的搜索结果,打SOLR-236_collapsing.patch补丁)...
  10. JetBrains学生认证过期,提示“No suitable licenses associated with account ”