城市路(信息学奥赛一本通-T1381)
【题目描述】
罗老师被邀请参加一个舞会,是在城市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)相关推荐
- 城市路(信息学奥赛一本通 - T1381)
题目描述 罗老师被邀请参加一个舞会,是在城市 n,而罗老师当前所处的城市为 1,附近还有很多城市 2 ~ n-1, 有些城市之间没有直接相连的路,有些城市之间有直接相连的路,这些路都是双向的,当然也可 ...
- 友好城市(信息学奥赛一本通-T1263)
[题目描述] Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同. 每对友好城市都向政府申请 ...
- 信息学奥赛一本通(题解目录)
信息学奥赛一本通(题解目录) 记录了我从初学者到逐渐熟悉c++的成长之路 信息学奥赛一本通OJ 目录 信息学奥赛一本通(题解目录) 前言 一.语言及算法基础篇 基础(一) C++语言 第一章 C++语 ...
- 信息学奥赛一本通 1263:【例9.7】友好城市
[题目链接] ybt 1263:[例9.7]友好城市 [题目考点] 1. 动态规划:线性动规 2. 排序 [解题思路] 该题可以抽象为两条平行线上各有若干点,给定一些两条线上点之间的连线,在选出连线不 ...
- 信息学奥赛一本通 (C++)上机练习
信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例
题目链接:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 题目描述: 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动 ...
- 信息学奥赛一本通(C++版)NOIP提高组(1820-1829)
信息学奥赛一本通(C++版)NOIP提高组目录 //1820 [题目描述] 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的 ...
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...
最新文章
- 区块链系列4-智能合约
- Oracle undo表空间爆满的解决
- 轻量级消息队列RedisQueue
- JQuery Datatables 在Bootstrap tab中列名无法对齐的问题
- apache域名本地映射
- Android继承AppCompatActivity实现全屏设置
- ssh mysql 命令_ssh mysql命令大全
- 大觉寺到鹫峰线路_大觉寺到鹫峰怎么走
- matlab plot symbol,导入时出错matlab.引擎不导入ubuntu16.04上python3.5.2中的matplotlib。为什么?...
- 微软回应法国指责Win10过度收集隐私数据:将更新隐私声明
- snprintf/strncpy/strlcpy速度测试
- ftp协议是一种用于什么的协议_购房协议怎么写?签购房协议要注意什么
- 考研英语九附双语阅读:英国品牌美国遇冷 美国人不待见英国货?
- 老虎证券爬取港股(对小米股价的实时显示和报警)
- [PyQt5]基本控件19 - 分割条QSplitter
- dayjs-入门及常用方法
- 解决SpringCloud的Gateway网关无法访问服务的静态资源
- C++11 IOC容器
- Pandaboard OMAP4460用linaro android源码启动
- 机房动环状态综合触摸屏监控解决方案