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

Challenge——spfa

Challenge

题目描述

wys和zerinf经常出题来虐Zhuyu。有一天, wys搞了一个有向图,每条边的长度都是1。 他想让Zhuyu求出点1到点 N 的最短路。
“水题啊。”, Zhuyu这么说道。
所以zerinf把某些边的长度增加了1(也就是说,每条边的长度不是1就是2)。现在,可怜的Zhuyu要向你求助了。

输入格式

第1行,两个整数 N (1 ≤ N ≤ 10^5) 和 M (1 ≤ M ≤ 10^6), 点和边的数量。
第2到 M + 1行: 三个整数 Ui, Vi, Wi (1 ≤ Wi ≤ 2), 从点 Ui 到 Vi 长度为 Wi 的边。

输出格式

一个整数,表示点1到点N的最短路。数据保证至少存在一条路径。

样例输入1

3 3
1 2 1
2 3 1
1 3 2

样例输出1

2

#include<bits/stdc++.h>
using namespace std;
int n,m,v,u,pre[100002],w,dis[100002],cnt;
queue<int> q;
bool used[100002];
struct ed{int to,w,next;
}e[1000002];
void add(int u,int v,int w,int b){e[++cnt].to=v;e[cnt].next=pre[u];e[cnt].w=w;pre[u]=b;
}
int main(){memset(pre,-1,sizeof(pre));memset(dis,0x3f,sizeof(dis));scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d%d%d",&u,&v,&w);add(u,v,w,i);}q.push(1);used[1]=1;dis[1]=0;while(!q.empty()){int now=q.front();//q.pop();used[now]=0;for(int i=pre[now];i!=-1;i=e[i].next ){//printf("%d\n",i);if(e[i].w+dis[now]<dis[e[i].to]){dis[e[i].to]=e[i].w+dis[now];if(!used[e[i].to]){used[e[i].to]=1;q.push(e[i].to);}}}}printf("%d\n",dis[n]);
}
/*
6 9
1 2 1
2 4 3
4 6 15
1 3 12
2 3 1
4 3 4
3 5 5
4 5 13
5 6 411
*/

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 文件IO和多路复用IO
  • Flink入门(五)--Flink算子
  • 【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第六篇 嵌入式GUI开发篇-第八十三章 Qt基础
  • Windows系统电脑安装多个Tomcat服务教程
  • 2021年高教社杯国赛a题 详细代码 文章 教学 2024数学建模国赛数模备赛: “FAST”主动反射面的形状调节
  • Android 自适应屏幕技术
  • SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构
  • HTML简单了解和基础知识记录
  • 高可用IP地址管理:使用Keepalived和Nginx实现VIP及IP池配置
  • kaggle竞赛宝典 | 量化竞赛第一名的网络模型
  • 【系统架构设计师】论文:论软件开发平台的选择与应用
  • NPJ系列|放射组学与多组学数据整合:推进精准肿瘤学的新模式|文献速递·24-08-25
  • 虚幻5|制作一个木桩,含血量及伤害数字
  • python代码错误集合
  • Linux自旋锁和读写锁
  • 【React系列】如何构建React应用程序
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Debian下无root权限使用Python访问Oracle
  • Git初体验
  • Git同步原始仓库到Fork仓库中
  • If…else
  • Javascript编码规范
  • Otto开发初探——微服务依赖管理新利器
  • Python_网络编程
  • react-native 安卓真机环境搭建
  • springMvc学习笔记(2)
  • Windows Containers 大冒险: 容器网络
  • 翻译--Thinking in React
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 七牛云假注销小指南
  • 前端_面试
  • 试着探索高并发下的系统架构面貌
  • 通过git安装npm私有模块
  • 问题之ssh中Host key verification failed的解决
  • 找一份好的前端工作,起点很重要
  • Java数据解析之JSON
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • # 计算机视觉入门
  • #pragma 指令
  • #单片机(TB6600驱动42步进电机)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (¥1011)-(一千零一拾一元整)输出
  • (1)SpringCloud 整合Python
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (Java入门)学生管理系统
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)项目管理杂谈-我所期望的新人
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算