出门旅行(tour)
出门旅行(tour)
题目描述:
在神奇的 oi 国度,有 n 个城市 m 条双向道路,每条道路连接了两个不同的城市。寒假到了,小 S 决定出门旅游一趟。因为以往跟团旅游多了,这次小 S 决定自驾游。对于自驾游,小 S 最关心的自然是燃油的耗费,为了省钱,小 S 请你帮他找一条最短的路。
输入格式:
第一行两个整数 n,m,表示有 n 个城市和 m 条双向道路。城市从 1..n 编号。
接下来 m 行,每行三个正整数 a,b,c,表示 a 和 b 之间有一条长为 c 的双向道路。a,b 不相同,且 c 不超过 1000
注意:两个城市之间可能会有多条双向道路。
接下来一行两个整数,s,t,表示小 S 本次旅行的出发地和目的地。s,t 不相同。
输出格式:
仅一行一个整数,表示最短的距离。如果不能到达,请输出-1。
样例输入:
3 3
1 2 1
1 3 3
2 3 1
1 3
样例输出:
2
提示:
【样例解释】
1->2->3 即是最优解。
【数据范围】
对于 30%的数据,n<=100,m<=1000
对于 100%的数据,n<=2000,m<=100000
时间限制:1000ms
空间限制:128MByte
#include<bits/stdc++.h>
using namespace std;
int n, m;
struct enode{
int y, z;
enode(int y1, int z1) : y(y1), z(z1) {}
}; struct node{
int dis, v;
node(int x1, int y1) : dis(x1), v(y1) {}
bool operator < (const node &a) const
{
return dis > a.dis;
}
}; vector<enode> e[];
priority_queue<node> q;
int dis[];
bool vis[]; int main()
{
int x, y, z, s, t, v;
cin>>n>>m;
for(int i = ; i <= m; i++){
cin>>x>>y>>z;
e[x].push_back(enode(y, z));
e[y].push_back(enode(x, z));
}
memset(dis, 0x3f3f3f3f, sizeof(dis));
memset(vis, , sizeof(vis));
cin>>s>>t;
dis[s] = ;
q.push(node(, s));
while(!q.empty()){
v = q.top().v;
q.pop();
if(vis[v]) continue;
vis[v] = ;
for(int i = ; i < e[v].size(); i++)
if(dis[v] + e[v][i].z < dis[e[v][i].y]){
dis[e[v][i].y] = dis[v] + e[v][i].z;
q.push(node(dis[e[v][i].y], e[v][i].y));
}
}
if(dis[t] == 0x3f3f3f3f) cout<<-<<endl;
else cout<<dis[t]<<endl;
return ;
}
出门旅行(tour)的更多相关文章
- JAVA组程序优化综合考试试题
题目原型: 有一张标准的树状结构表,里面有Structure_Id和 Parent_Id两个关键列,记录了结点的父子关系.现在要求添加一个字段为 Structure_Code ,标记为 三位一个节点关 ...
- 编程语言拟人化:Java、C++、Python、Ruby、PHP、C#、JS!--隆重推荐转
http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002412 Java.C++.Python.Ruby.C#.PHP.JavaScript.7つの ...
- OS快速开发必备
github:https://github.com/koknine (终于改成以前的了) 当前移动互联网行业太火爆,移动端的需求日益增长,很多开发人员每天都应对着各种需求,作为一名iOS开发人员,对于 ...
- 翻扣告诉你外出旅游时实用的一些小tips
很多人出行都会带着大包小包,东西胡乱塞成一团,导致每次要用的时候都翻个遍.所以今天游游君为大家推荐几个出门旅行的小技巧. 收拾行李时,把鞋子放进浴帽里.浴帽很容易洗干净,还可以防止鞋子把干净的衣服弄脏 ...
- PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点
PHP.Java.Python.C.C++ 这几种编程语言都各有什么特点或优点 汇编: C: Java: C#: PHP: Python: Go: Haskell: Lisp: C++: &l ...
- Atitit 关于共享经济之共享男女朋友的创业计划
Atitit 关于共享经济之共享男女朋友的创业计划 1. 共享经济的历史与趋势 1 1.1. 共享经济三大特征=产能过剩+共享平台+人人参与. 1 1.2. 共享经济是个大趋势,使用权渐渐的取代所有权 ...
- English trip V1 - 19.Where Am I? 我在哪里?Teacher:Patrick Key:Ask for and directions
In this lesson you will learn to ask for and give directions. 本节课你将学习到学会问路和指路. 课上内容(Lesson) 人类的几种感: ...
- VB.NET & 策略模式(下机用户类型选择)
上篇文章讲述了对于下机操作和基本数据设定的时间联系,今天主要就是应用"策略模式"来了解了解对于固定用户,以及暂时用户之间的选择,看学习设计模式的时候自己对于策略模式的理解,我们能够 ...
- 「案例」让房东在 Airbnb 上展示他们的热情好客
如何才能让房东准确的描述自己的房源,如何才能让房东充分的展示自己的房源.Airbnb 在这次更新里尝试去解决了这两个问题,让我们跟随作者的文笔去了解一下整个项目的经过. 关于本文 原文作者:Cecil ...
随机推荐
- windows 7下安装MySQL5.6
一. 软件下载 从MySql官网上下载响应的版本,我的是5.6.17. 二.安装过程 以管理员权限运行安装程序,收集信息. 选择安装MySql产品,如果之前有安装过,那么就选择更新了. 同意Licen ...
- 分布式数据库sort那些事儿
待填. 收回之前的填坑时间. 计划永远没有变化快,所有周末都奉献上还是有干不完的活,待闲时再来填..
- 判断表单中是否含有disabled属性
我想判断input里面是否有disabled.或者选中未选中的selected checked 属性时,需要用 prop() 方法,返回的结果是 true 或 false . attr()这个方 ...
- webConfig中<customErrors>节点配置
发布在远程计算机上的网站调试问题: 通常情况下我们会设置错误页,不让用户看到错误信息 这种WebConfig的配置方法是: <configuration> <system.web&g ...
- 【转】带你正确的使用List的retainAll方法求交集
一. retainAll 方法 public boolean retainAll(Collection<?> c) { //调用自己的私有方法 return batchRemove(c, ...
- Python基本操作之文件操作
一. 1.文件操作的函数 open("文件名字(路径)",mode="模式",encoding="字符集") 2.模式:r,w,a,r+,w ...
- HihoCoder#1509 : 异或排序(二进制)
题意 题目链接 Sol 挺简单的吧.考虑两个元素什么时候不满足条件 设\(a_i\)与\(a_i + 1\)最高的不同位分别为0 1,显然\(S\)的这一位必须为\(0\),否则这一位必须为\(1\) ...
- iDempiere 使用指南 采购入库流程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- RAL调用
[RPC的定义].RPC的全称为 Remote Procedure Call(远程过程调用).远程过程调用是一个计算机通信协议.该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额 ...
- PagerAdapter相关
FragmentPagerAdapter 特点: 应用于少数的(10个以下)fragment:保存在内存中: 只需实现 getItemgetCount()两个方法 FragmentStatePager ...