当前位置: 首页 > news >正文

GESP:2025-3月等级8-T1-上学

时间限制 : 1 秒

内存限制 : 128 MB

C 城可以视为由 n个结点与 m条边组成的无向图。这些结点依次以1,2,....n标号,边依次以 1,2...m标号。第i条边(1<=i<=m )连接编号为ui 与vi的结点,长度为li米。 小 A 的学校坐落在 C 城中编号为 s的结点。小 A 的同学们共有 q位,他们想在保证不迟到的前提下,每天尽可能晚地出门上学。但同学们并不会计算从家需要多久才能到学校,于是找到了聪明的小 A。第 i位同学(1<=i<=q )告诉小 A,他的 家位于编号为hi 的结点,并且他每秒能行走 1 米。请你帮小 A 计算,每位同学从家出发需要多少秒才能到达学校呢?

输入

第一行,四个正整数n,m,s,q ,分别表示 C 城的结点数与边数,学校所在的结点编号,以及小 A 同学们的数量。 接下来m行,每行三个正整数ui,vi,li ,表示 C 城中的一条无向边。 接下来q行,每行一个正整数hi,表示一位同学的情况

输出

共q行,对于每位同学,输出一个整数,表示从家出发到学校的最短时间。

样例
输入
5 5 3 3
1 2 3
2 3 2
3 4 1
4 5 3
1 4 2
5
1
4
输出
4
3
1
提示

数据范围

对于 20% 的测试点,保证q=1 。

对于另外20 % 的测试点,保证1<=n<=500 ,1<=m<=500 。
对于所有测试点,保证1<=n<=2 * 10^5 ,1<=m<=2 * 10^5 ,1<=q<=2 * 10^5,1<=ui,vi,s,hi<=n ,1<=li<=10^6 。保证给定的图联通。

———————————————————————————————————————————思路:

以学校为原始的点,Dijkstra算法求学校到每一个点的时间。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=200002;
int n,m,s,t,dis[N];
bool v[N];
struct node
{
	int v,e;
};
vector<node> q[N];
priority_queue<pair<int,int>>Q;
int main()
{
	scanf("%d%d%d%d",&n,&m,&s,&t);
	for(int i=1;i<=m;i++)
	{
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		q[a].push_back(node{c,b});
		q[b].push_back(node{c,a});
	}
	for(int i=1;i<=n;i++)
	{
		dis[i]=INT_MAX;
	}
	dis[s]=0;
	memset(v,0,sizeof(v));
	while(!Q.empty()) Q.pop();
	Q.push(make_pair(0,s));
	while(!Q.empty())
	{
		int wz=Q.top().second;
		Q.pop();
		v[wz]=1;
		for(int i=0;i<q[wz].size();i++)
		{
			if(dis[q[wz][i].e]>dis[wz]+q[wz][i].v)
			{
				dis[q[wz][i].e]=dis[wz]+q[wz][i].v;
				if(!v[q[wz][i].e])
				{
					Q.push(make_pair(-dis[q[wz][i].e],q[wz][i].e));
				}
			}
		}
	}
	for(int i=1;i<=t;i++)
	{
		int d;
		scanf("%d",&d);
		printf("%d\n",dis[d]);
	}
	return 0;
}

http://www.dtcms.com/a/113348.html

相关文章:

  • Java异步编程中的CompletableFuture介绍、常见错误及最佳实践
  • 多周期多场景的供应链优化问题 python 代码
  • QMainWindow添加状态栏
  • 【深度学习】嘿马深度学习目标检测教程第2篇:目标检测算法原理,3.2 R-CNN【附代码文档】
  • 【C/C++算法】蓝桥杯之递归算法(如何编写想出递归写法)
  • 2025 年 4 月补丁星期二预测:微软将推出更多 AI 安全功能
  • Java实现N皇后问题的双路径探索:递归回溯与迭代回溯算法详解
  • 【微机及接口技术】- 第四章 内部存储器及其接口(中)
  • LlamaIndex实现RAG增强:上下文增强检索/重排序
  • 我是如何写作的?
  • LintCode第974题-求矩阵各节点的最短路径(以0为标准)
  • 如何将本地更改的README文件同步到自己的GitHub项目仓库
  • OmniParser: 让大模型化身“电脑管家”
  • 洛谷 P3214 [HNOI2011] 卡农
  • 2.IO流的体系和字节输出流FileOutputStream的基本用法
  • macos 魔搭 模型下载 Wan-AI ComfyUI
  • L2-024 部落 #GPLT,并查集 C++
  • 智能驾驶中预测模块简介
  • 广州t11基地顺利完成交割,TCL华星技术产能双升级
  • 【java】Class.newInstance()
  • 硬币找零问题
  • 特征值与特征向量:从理论到应用的全面解析
  • Java类加载问题
  • STM32单片机入门学习——第16节: [6-4] PWM驱动LED呼吸灯PWM驱动舵机PWM驱动直流电机
  • 《AI大模型应知应会100篇》第4篇:Transformer架构深入浅出:大模型的基石
  • cadence17.4和16.6同时安装无法使用的问题
  • 关于图片分类任务的猜想 | 撰写论文 paper
  • .net多贸易公司借入借出归还设备进销存管理系统软件租金计算库存管理
  • M芯片,能运行普通应用程序的原架构虚拟机
  • Java的Selenium元素定位-xpath