当前位置:网站首页>练习40,小蓝的旅行【最短路】
练习40,小蓝的旅行【最短路】
2022-08-02 08:32:00 【ILECY】
根据题意,我们知道只能从未做核酸的城市到做核酸的城市或者从做核酸的城市到未做核酸的城市,所以我们可以将每个点分别当成未做核酸的和做了核酸的,然后分别建边求最短路
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define NOTLE ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define endl '\n'
#define T int TT;cin >> TT;while (TT--)
#define lint long long
#define pb push_back
#define eb emplace_back
int last[800010],ne[800010],to[800010],w[800010],cnt=0; //要开4倍(无向图+是否做核酸
int n,m,x;
lint d[200010],vis[200010]={0};
void add(int a,int b,int c){ //链式前向星存图
ne[++cnt]=last[a];
to[cnt]=b;
w[cnt]=c;
last[a]=cnt;
}
void SPFA(){
memset(d,INF,sizeof(d));
queue<int> q;
q.push(1);
d[1]=0,vis[1]=1;
while(!q.empty()){
int now=q.front();
q.pop();
vis[now]=0;
for(int i=last[now];i;i=ne[i]){
if(d[to[i]]>d[now]+w[i]){
d[to[i]]=d[now]+w[i];
if(!vis[to[i]]){
q.push(to[i]);
vis[to[i]]=1;
}
}
}
}
}
int main(){
NOTLE;
cin >> n >> m >> x;
for(int i=1;i<=m;i++){
int a,b,c;
cin >> a >> b >> c;
if(a==1){ //一开始是没有做核酸的
add(a,b+n,c+x);
add(b+n,a,c);
}
else{ //由于是无向图存两遍,而且要保证只能从有→无或无→有
add(a+n,b,c);
add(b,a+n,c+x);
add(a,b+n,c+x);
add(b+n,a,c);
}
}
SPFA();
cout << min(d[n],d[n+n]) << endl;
return 0;
}
边栏推荐
- “蔚来杯“2022牛客暑期多校训练营4
- PostgreSQL学习总结(11)—— PostgreSQL 常用的高可用集群方案
- location对象,navigator对象,history对象学习
- 自定义table表格
- prometheus monitoring mysql_galera cluster
- spark:页面单跳转换率统计(案例)
- AI目标分割能力,无需绿幕即可实现快速视频抠图
- 普林斯顿微积分读本03第二章--编程实现函数图像绘制、三角学回顾
- Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案
- pnpm:简介
猜你喜欢

EPSANet: An Efficient Pyramid Split Attention Block on Convolutional Neural Network

TiFlash 存储层概览

小康股份更名赛力斯,如何走出一条高端产品的“丝绸之路”?

PyQt5(一) PyQt5安装及配置,从文件夹读取图片并显示,模拟生成素描图像

redis-desktop-manager下载安装

etcd implements large-scale service governance application combat

【C】关于柔性数组.简要的谈谈柔性数组

C语言_指针

UVM之sequence机制

MySQL Workbench 安装及使用
随机推荐
Jenkins--部署--3.1--代码提交自动触发jenkins--方式1
LeetCode_2358_分组的最大数量
MySQL读写分离与主从延迟
Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案
近期在SLAM建图和定位方面的进展
MySQL Workbench 安装及使用
The custom table form
自定义View实现波浪荡漾效果
What attributes and methods are available for page directives in JSP pages?
openpyxl 单元格合并
构建Flink第一个应用程序
【论文阅读】Distilling the Knowledge in a Neural Network
Jenkins--基础--6.2--Pipeline--语法--声明式
C Language Basics_Union
科技云报道:实现元宇宙,英伟达从打造基础建设平台开始
【开源项目】X-TRACK源码分析
Biotinyl Cystamine | CAS: 128915-82-2 | biotin cysteamine
PyCharm使用教程(较详细,图+文)
UVM之sequence机制
PyCharm usage tutorial (more detailed, picture + text)