【题目描述】

罗老师被邀请参加一个舞会,是在城市n,而罗老师当前所处的城市为1,附近还有很多城市2~n-1,有些城市之间没有直接相连的路,有些城市之间有直接相连的路,这些路都是双向的,当然也可能有多条。

现在给出直接相邻城市的路长度,罗老师想知道从城市1到城市n,最短多少距离。

【输入】

输入n, m,表示n个城市和m条路;

接下来m行,每行a b c, 表示城市a与城市b有长度为c的路。

【输出】

输出1到n的最短路。如果1到达不了n,就输出-1。

【输入样例】

​5 5
1 2 20
2 3 30
3 4 20
4 5 20
1 5 100

【输出样例】

90

【源程序】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<set>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 3001
#define MOD 123
#define E 1e-6
using namespace std;
struct node{int pre;int next;int w;
}a[N*10];
int n,m;
int cnt;
int head[N],vis[N],f[N];
void add(int x,int y,int w)
{cnt++;a[cnt].pre=y;a[cnt].next=head[x];a[cnt].w=w;head[x]=cnt;cnt++;a[cnt].pre=x;a[cnt].next=head[y];a[cnt].w=w;head[y]=cnt;
}int main()
{cin>>n>>m;for(int i=1;i<=m;i++){int x,y,w;cin>>x>>y>>w;add(x,y,w);}memset(f,INF,sizeof(f));f[1]=0;vis[1]=1;int x=head[1];while(x!=0){int y=a[x].pre;if(f[y]>a[x].w)f[y]=a[x].w;x=a[x].next;}int cnt=0;while(cnt<n){cnt++;int k;int minn=INF;for(int i=1;i<=n;i++)if(vis[i]==0&&f[i]<minn){minn=f[i];k=i;}vis[k]=1;int x=head[k];while(x!=0){int y=a[x].pre;int w=a[x].w;if(vis[y]==0&&f[y]>f[k]+w)f[y]=f[k]+w;x=a[x].next;}}if(f[n]==INF)cout<<"-1"<<endl;elsecout<<f[n]<<endl;return 0;
}

城市路(信息学奥赛一本通-T1381)相关推荐

  1. 城市路(信息学奥赛一本通 - T1381)

    题目描述 罗老师被邀请参加一个舞会,是在城市 n,而罗老师当前所处的城市为 1,附近还有很多城市 2 ~ n-1, 有些城市之间没有直接相连的路,有些城市之间有直接相连的路,这些路都是双向的,当然也可 ...

  2. 友好城市(信息学奥赛一本通-T1263)

    [题目描述] Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同. 每对友好城市都向政府申请 ...

  3. 信息学奥赛一本通(题解目录)

    信息学奥赛一本通(题解目录) 记录了我从初学者到逐渐熟悉c++的成长之路 信息学奥赛一本通OJ 目录 信息学奥赛一本通(题解目录) 前言 一.语言及算法基础篇 基础(一) C++语言 第一章 C++语 ...

  4. 信息学奥赛一本通 1263:【例9.7】友好城市

    [题目链接] ybt 1263:[例9.7]友好城市 [题目考点] 1. 动态规划:线性动规 2. 排序 [解题思路] 该题可以抽象为两条平行线上各有若干点,给定一些两条线上点之间的连线,在选出连线不 ...

  5. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  6. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  7. 经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例

    题目链接:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 题目描述: 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动 ...

  8. 信息学奥赛一本通(C++版)NOIP提高组(1820-1829)

    信息学奥赛一本通(C++版)NOIP提高组目录 //1820 [题目描述] 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的 ...

  9. 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...

最新文章

  1. 区块链系列4-智能合约
  2. Oracle undo表空间爆满的解决
  3. 轻量级消息队列RedisQueue
  4. JQuery Datatables 在Bootstrap tab中列名无法对齐的问题
  5. apache域名本地映射
  6. Android继承AppCompatActivity实现全屏设置
  7. ssh mysql 命令_ssh mysql命令大全
  8. 大觉寺到鹫峰线路_大觉寺到鹫峰怎么走
  9. matlab plot symbol,导入时出错matlab.引擎不导入ubuntu16.04上python3.5.2中的matplotlib。为什么?...
  10. 微软回应法国指责Win10过度收集隐私数据:将更新隐私声明
  11. snprintf/strncpy/strlcpy速度测试
  12. ftp协议是一种用于什么的协议_购房协议怎么写?签购房协议要注意什么
  13. 考研英语九附双语阅读:英国品牌美国遇冷 美国人不待见英国货?
  14. 老虎证券爬取港股(对小米股价的实时显示和报警)
  15. [PyQt5]基本控件19 - 分割条QSplitter
  16. dayjs-入门及常用方法
  17. 解决SpringCloud的Gateway网关无法访问服务的静态资源
  18. C++11 IOC容器
  19. Pandaboard OMAP4460用linaro android源码启动
  20. 机房动环状态综合触摸屏监控解决方案

热门文章

  1. 瑞幸咖啡股价再创新低,App 反冲 TOP 1
  2. 原作者出局!Faker.js已被社区控制。。
  3. 深入理解RocketMQ是如何做到高性能的?
  4. 如何抵御频发的 DDOS 攻击?
  5. JimuReport 1.3.7 首个正式版本发布,免费的可视化拖拽报表
  6. jeewx 团队微信开发招募新人
  7. A cycle was detected in the build path of project
  8. SAP常用T-Code
  9. ubuntu16.04中使用搜狗输入法Qt5无法输入中文解决方式
  10. ★36句经典英文格言