牛客国庆集训派对Day3 - I Metropolis (最短路)

FRM模型五:Brinson业绩归因 利用Brinson对基金组合业绩进行归因分析。 阅读详情

https://www.nowcoder.com/acm/contest/203/I

 

POINT:

把大都会都先放入队列。相当于多起点的最短路。

然后进行最短路。记录每个点离他最近的大都会(来源)。这个在松弛的时候就可以记下来。

然后对于每一条边,两个端点的大都会不同时,可以知道这两个大都会的距离为dis[u]+dis[v]+w.

更新答案。

 

#include <vector>
#include <stdio.h>
#include <iostream>
#include <stdio.h>
#include <queue>
using namespace std;
#define LL long long
const int N = 2e5+6;
const LL inf = 0x3f3f3f3f3f3f3f3f;
typedef pair<LL,int> pii;

vector<int>G[N];
vector<int>W[N];
int x[N],from[N],vis[N];
LL dis[N],ans[N];
int n,m,p;
void dij()
{
	priority_queue<pii,vector<pii>,greater<pii> > q;
	for(int i=1;i<=n;i++){
		dis[i]=inf;vis[i]=0;ans[i]=inf;
	}
	for(int i=1;i<=p;i++){
		q.push(make_pair(dis[x[i]]=0, x[i]));
		from[x[i]]=x[i];
	}
	while(!q.empty()){
		pii now=q.top();
		q.pop();
		int u = now.second;
		if(vis[u]) continue;
		vis[u]=1;
		for(int i=0;i<G[u].size();i++){
			int v=G[u][i];
			int w=W[u][i];
			if(dis[v]>dis[u]+w){
				dis[v]=dis[u]+w;
				from[v]=from[u];
				q.push(make_pair(dis[v], v));
			}else if(from[v]!=from[u]){
				int x=from[v],y=from[u];
				ans[x]=min(ans[x],dis[u]+dis[v]+w);
				ans[y]=min(ans[y],dis[u]+dis[v]+w);
			}
		}
	}
}

int main()
{
	scanf("%d%d%d",&n,&m,&p);
	for(int i=1;i<=p;i++)
		scanf("%d",&x[i]);
	for(int i=1;i<=m;i++){
		int a,b,l;
		scanf("%d%d%d",&a,&b,&l);
		G[a].push_back(b);G[b].push_back(a);
		W[a].push_back(l);W[b].push_back(l);
	}
	dij();
	for(int i=1;i<=p;i++){
		printf("%lld%c",ans[x[i]],i==p?'\n':' ');
	}

}

 

从零实现深度学习框架【实现自己的PyTorch(已完结)】 本着“凡我不能创造的,我就不能理解”的思想,此系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 阅读详情

相关推荐

Multisim14安装失败?手把手教你彻底清理残留文件(附专用卸载工具)

本文针对Multisim14安装失败问题,提供了一套从根源解决的完整方案。文章详细分析了安装失败的三大元凶——文件残留、注册表残留和隐藏组件,并手把手指导用户使用专用卸载工具进行标准化清理,再结合手动深度清理文件系统和注册表,最终实现彻底卸载和完美重装,有效解决Multisim14安装问题。

weixin_29179311的博客 317

牛客国庆集训派对Day3 ~ I ~ Metropolis(多源最短路,好题)

思路 本题是要求多点到多点的最短路,容易想到floyd但是时间明显爆炸。 我们另辟蹊径,我们把所有源点入队,跑dijkstra,如果某一条边(u,v,w)同时被两个点扩展到了的话,那么这两个点之间最短路就是dis[u]+dis[v]+w。 我们用from[i]表示第 i 个点是被第几个源点扩展到的,如果某条边的from[u] != from[v],那么这条边有就是由两个不同的点扩展到的。 注意开...

张松超的博客 378

IAP板卡远程升级(串口网口都可)+Ymodem+AES对bin文件加密+pc软件+板卡相互烧录

还是决定记录一下,毕竟这个东西我也搞了挺久的,遇到一些棘手的,或者是因为我很粗心遇到的问题也和大家分享一下,。 板卡核心是 STM32F103RCT6,256kflash 前言 开始看这个远程升级的时候,我是一头雾水的,原子哥的教程里面也有说到过iap,有了一个大概的了解,我想不明白的是,通过串口下载的方式把hex文件下载到flash,和把bin文件下载到flash难道不是拉一根线,下载一个文件嘛,(初入职场的我并没有考虑到安全这个问题)如果直接将hex文件给到客户那边,风险是非常大...

那可真是太开心了的博客 5370

牛客国庆集训派对Day3 I Metropolis

题目:点击打开链接 题意:略。 分析:多源点最短路,只要两个不同源点的最短路相遇,我们就更新两个源点的答案。 代码: #pragma comment(linker, "/STACK:102400000,102400000") #include&lt;unordered_map&gt; #include&lt;unordered_set&gt; #include&lt;algorithm&gt...

常胜将军的博客 255

波束形成算法:LCMV实现(MATLAB)

阵列信号处理,波束成形,

weixin_43601588的博客 1万+

深入浅出:.sh文件在Linux系统中的实战应用与技巧

本文深入浅出地介绍了.sh文件在Linux系统中的实战应用与技巧。从基础概念入手,详细讲解了Bash脚本的运行方法、权限管理,并通过编写自动化备份脚本等实例,展示了如何利用Shell脚本提升工作效率。文章还涵盖了脚本调试、错误处理以及函数、参数解析等进阶技巧,帮助读者从入门到精通,掌握这一强大的自动化工具。

weixin_29243279的博客 346

牛客国庆集训派对Day3 I-Metropolis (迪杰斯特拉堆优化)

链接:https://www.nowcoder.com/acm/contest/203/I 来源:牛客网   题目描述 魔方国有n座城市,编号为。城市之间通过n-1条无向道路连接,形成一个树形结构。 在若干年之后,其中p座城市发展成了大都会,道路的数量也增加到了m条。 大都会之间经常有贸易往来,因此,对于每座大都会,请你求出它到离它最近的其它大都会的距离。 输入描述: 第一行三个整数n,...

LP_Cong 688

熵权法+TOPSIS完整教学:用Python评估大学科研实力(含雷达图绘制技巧)

本文提供了一套完整的熵权法与TOPSIS综合评价方法在Python中的实现教程,以高校科研实力评估为例,详细讲解了从数据预处理、客观权重计算、综合排序到结果可视化的全流程。重点介绍了如何利用Python进行数据清洗与转换,通过熵权法自动确定指标权重,并结合TOPSIS模型计算各院校与理想解的相对接近度进行排名。教程还包含了使用Matplotlib绘制专业雷达图的技巧,帮助读者直观呈现多维数据的对比分析结果,适用于各类多指标决策与绩效评估场景。

weixin_28520495的博客 416

牛客国庆集训派对Day3 I. - Metropolis (Dijkstra变型)

题意:求一个N个点无向图中,其中p个关键点间的最短距离. 分析:比较特殊的最短路,方式类似于多源BFS,将所有关键点装入优先队列,状态中需要包含其源点的id.对每条边都要遍历,对每个节点,需要记录其确定最短的源头以及其最短距离.当一个访问状态到达了与自己源头状态不同的点,则说明两个关键点相遇,每次相遇时,更新两个源头的最短距离. #include<bits/stdc++.h> usin...

weixin_30361641的博客 154

基于Vivado MIG IP核的DDR3读写实验(top_rom_ddr/ddr_top)

一、前言 关于Vivado MIG IP核详细配置可以参考我之前的文章:基于Vivado MIG IP核的DDR3控制器(DDR3_CONTROL) 关于MIG IP核的用户端的接口时序可以参考这篇文章:XILINX 的 MIG IP(非AXI4)接口时序以及控制 二、实验内容 本次实验的内容主要是通过MIG IP核向DDR3读写数据,DDR3的接口时序由ddr_top模块提供: ddr_top模块的数据来源是wr_fifo,wr_fifo的数据实际来自top_sd_photo模块(本实验仿真

耐心的小黑的博客 3027

RK3568笔记二:部署手写数字识别模型

部署手写数字识别模型,使用手写数字识别(mnist)数据集训练了一个 LENET 的五层经典网络模型。Lenet是我们的深度学习入门的必学模型,是深度学习领域中的经典卷积神经网络(CNN)架构之一。过程分为:训练,导出ONNX,转化RKNN,测试。

1169

牛客国庆集训派对Day3 I Metropolis (多源最短路)

题目描述  魔方国有n座城市,编号为。城市之间通过n-1条无向道路连接,形成一个树形结构。 在若干年之后,其中p座城市发展成了大都会,道路的数量也增加到了m条。 大都会之间经常有贸易往来,因此,对于每座大都会,请你求出它到离它最近的其它大都会的距离。 输入描述: 第一行三个整数n,m,p (1 ≤ n,m ≤ 2*105,2 ≤ p ≤ n),第二行p个整数表示大都会的编号 (1≤ xi≤...

Ever_glow的博客 546

*手把手教你学 Simulink——压缩机用永磁同步电机无位置传感器 I‑F 启动(Sensorless I/F Starting)控制仿真

dtdi^α​​zα​e^α​ω^θ^​=Ls​1​(−Rs​i^α​+usα​−zα​)=K⋅sign(i^α​−iα​)=zα​+Kpll​⋅(i^α​−iα​)同理 β=PLL(e^α​,e^β​)=∫ω^dt​。给定 Id​=Iset​, Iq​=f(θopen​)按设定 fstart​(t)Iq​=k⋅sin(θopen​)投影 → 恒幅 Is​=Id2​+Iq2​​。​ 将 Id​,Iq​→ Iα​,Iβ​→ SVPWM。Id​=Ialign​(弱对齐 → 防抖动)

amy_mhd的博客 38

牛客国庆集训派对Day3 I Metropolis(多源多汇最短路)

Metropolis 题意:ppp个点mmm条无向边,对于这ppp个点,问距离其它点最近的距离。 题解:首先,如果我们考虑最暴力的方法,ppp次单源最短路。但是ppp的大小有2e52e52e5,明显是不可能了。那就考虑多源最短路吧。将这ppp个点都加入队列作为源点。对于每一个节点,我们记录它是由哪一个源点扩展出来的。当从一个源点iii,扩展到另一个源点jjj扩展出来的一个节点uuu时,那么dis(...

Eternally831143的博客 443

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

牛客2018国庆集训派对Day3 I Metropolis 多源最短路径

传送门:https://www.nowcoder.com/acm/contest/203/I 题意:   求每个大都会到最近的一个大都会的距离。 思路:   把每个大都会设为起点,跑一遍最短路。在跑最短路的时候,假设有一个大都会A,它不能更新一个非大都会B点,就说明这个B到另一个大都会C很近,用dis[u] + dis[B] + w[u][B]更新A点的答案。 #inclu...

weixin_30367945的博客 172

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

牛客国庆集训派对Day3: I. Metropolis(dijkstra)

  I. Metropolis 题目描述 魔方国有n座城市,编号为。城市之间通过n-1条无向道路连接,形成一个树形结构。 在若干年之后,其中p座城市发展成了大都会,道路的数量也增加到了m条。 大都会之间经常有贸易往来,因此,对于每座大都会,请你求出它到离它最近的其它大都会的距离。 输入描述: 第一行三个整数n,m,p (1 ≤ n,m ≤ 2*105,2 ≤ p ≤ n),第二行p个整...

加载中... 663

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HDU 6181 Two Paths (次短路)

Two Paths Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 153428/153428 K (Java/Others) Total Submission(s): 5    Accepted Submission(s): 2 Problem Description You are given a undi

Mr_Treeeee的博客 867

hihocoder 编程练习赛78 - D 泥泞的道路(最短路)

https://hihocoder.com/contest/offers78/problem/4   POINT: 从起点到某个点肯定有多条路,这些路可以抽象为(a,b),a代表经过的路径条数,b代表经过的路径总长度。 那么答案就= a*天数+b。 那么我们就要找到每个点的多对(a,b),当天数较多时,明显a小的有优势,而当天数较少时,可能a大的有优势。  当然这些比较都是在a确定的情...

Mr_Treeeee的博客 623

HDU 3499 Flight (SPFA+分层图)

Flight Time Limit : 20000/10000ms (Java/Other)   Memory Limit : 65535/65535K (Java/Other) Total Submission(s) : 14   Accepted Submission(s) : 3 Font: Times New Roman | Verdana | Georgia Fo

Mr_Treeeee的博客 574

景驰无人驾驶 1024 编程邀请赛 - A. 热爱工作的蒜蒜 (A*)

众所周知,蒜蒜是一名热爱工作的好员工,他觉得时间就是金钱,做事情总是争分夺秒。 这天晚上,蒜蒜一个人去吃晚饭。不巧的是,吃完饭以后就开始下雨了,蒜蒜并没有带雨伞出来。但是蒜蒜热爱工作,工作使他快乐,他要尽快赶回去写代码。 蒜蒜的公司在中关村,中关村这边地形复杂,有很多天桥、地下通道和马路交错在一起。其中,地下通道是可以避雨的,天桥和马路都没办法避。可以把中关村抽象成为 nn 个点的地图(顶点编

Mr_Treeeee的博客 551

HDU 2722 Here We Go(relians) Again (SPFA+建图)

Here We Go(relians) Again Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 4   Accepted Submission(s) : 3 Font: Times New Roman | Verdana

Mr_Treeeee的博客 551

Codeforces Beta Round #25 (Div. 2 Only) - C. Roads in Berland (最短路松弛)

C. Roads in Berland time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There are n cities numbered from 1 to n

Mr_Treeeee的博客 513

POJ 1511 Invitation Cards (SPFA+反向建图)

Invitation Cards Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 65536/65536K (Java/Other) Total Submission(s) : 36   Accepted Submission(s) : 17 Font: Times New Roman | Verdana | Geo

Mr_Treeeee的博客 493

The 2018 ACM-ICPC China JiangSu Provincial Programming Contest - I. T-shirt (快速幂+Floyd)

题目   题意: 给你n,m。m*m的邻接矩阵,问你从一个点到一个点,走过n个点(n=1的话,就不走边。)【n-1条边】最长路是多少。   POINT: 快速幂+Floyd的应用。   #include&lt;bits/stdc++.h&gt; using namespace std; #define LL long long const LL maxn=100+10; cons...

Mr_Treeeee的博客 478

POJ 2449 Remmarguts' Date (A*+K短路)

Remmarguts' Date Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 31149   Accepted: 8500 Description "Good man never makes girls wait or breaks an appointme

Mr_Treeeee的博客 445

HDU1142 A Walk Through the Forest(SPFA+记忆化搜索)

A Walk Through the Forest Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 32   Accepted Submission(s) : 12 Font: Times New Roman | Verda

Mr_Treeeee的博客 433
上一篇: 牛客国庆集训派对Day3 - B Tree (树形DP)
下一篇: 牛客国庆集训派对Day4 - H 树链博弈
Mr_Treeeee
博客等级 码龄10年 38粉丝 551原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值