题目描述

给一个 n(1≤2500≤n) n(1 \leq 2500 \leq n)n(1≤2500≤n) 个点 m(1≤6200≤m) m(1 \leq 6200 \leq m)m(1≤6200≤m) 条边的无向图,求 s ss 到 t tt 的最短路。

输入格式

第一行四个由空格隔开的整数 n nn、m mm、s ss、t tt。
之后的 m mm 行,每行三个正整数 si s_is​i​​、ti t_it​i​​、wi(1≤wi≤109) w_i(1 \leq w_i \leq 10 ^ 9)w​i​​(1≤w​i​​≤10​9​​),表示一条从 si s_is​i​​ 到 ti t_it​i​​ 长度为 wi w_iw​i​​ 的边。

输出格式

一个整数表示从 s ss 到 t tt 的最短路长度。数据保证至少存在一条道路。

样例

样例输入

7 11 5 4
2 4 2
1 4 3
7 2 2
3 4 3
5 7 5
7 3 3
6 1 1
6 3 4
2 4 3
5 6 3
7 2 1

样例输出

7

屠龙宝刀点击就送

#include <ctype.h>
#include <cstring>
#include <cstdio>
#include <queue>
#define N 6205 using namespace std;
void read(int &x)
{
x=;
char ch=getchar();
while(!isdigit(ch)) ch=getchar();
while(isdigit(ch)) x=x*+ch-'',ch=getchar();
}
struct node
{
int next,to,dis;
}edge[N<<];
int head[N/],cnt,n,m,s,t,dis[N/];
bool visit[N/];
struct NODE
{
int x,y;
bool operator<(NODE a)const
{
return x>a.x;
}
};
priority_queue<NODE>q;
void add(int u,int v,int w)
{
edge[++cnt].next=head[u];
edge[cnt].to=v;
edge[cnt].dis=w;
head[u]=cnt;
}
int main()
{
read(n);read(m);read(s);read(t);
for(int si,ti,wi;m--;)
{
read(si);
read(ti);
read(wi);
add(si,ti,wi);
add(ti,si,wi);
}
memset(dis,,sizeof(dis));
dis[s]=;
NODE a;
a.x=dis[s];
a.y=s;
q.push(a);
while(!q.empty())
{
NODE a=q.top();
q.pop();
if(visit[a.x]) continue;
int v=a.y;
visit[v]=;
for(int i=head[v];i;i=edge[i].next)
{
if(dis[edge[i].to]>edge[i].dis+dis[v])
{
dis[edge[i].to]=edge[i].dis+dis[v];
NODE a;
a.x=dis[edge[i].to];
a.y=edge[i].to;
q.push(a);
}
}
}
printf("%d",dis[t]);
return ;
}

最新文章

  1. Java的输入方式总结
  2. undefined function openssl_x509_read
  3. JSTL 标签库 使用
  4. 【转】java反射详解
  5. hdu 5256 序列变换(LIS最长上升子序列)
  6. ibatis配置log4j输出sql日志信息
  7. [Oracle] CPU/PSU补丁安装教程
  8. 用Java制作一个简单的图片验证码
  9. [LeetCode] Inorder Successor in BST II 二叉搜索树中的中序后继节点之二
  10. runAllManagedModulesForAllRequests
  11. Java实现数据库与eclipse的连接
  12. Web版微信协议分析—版本2
  13. 3.4 C++名字隐藏
  14. mybatis 使用oracle merge into 语句踩坑实录
  15. chrome 字体太浅,如何设置
  16. java web文件下载功能实现 (转)
  17. python性能对比
  18. sublimeText3的一些操作记录
  19. mysql 闪回测试
  20. Esper——内存计算、事件驱动、SQL支持

热门文章

  1. Java类成员访问控制权限
  2. [Selenium] 操作新弹出窗口之验证标题和内容
  3. [laravel]要点
  4. 机器学习(2):简单线性回归 | 一元回归 | 损失计算 | MSE
  5. SCUT - 249 - A piece of Cake - 组合数学
  6. hdu2476【区间DP,未完待续】
  7. HDOJ1864(水的可怜)
  8. hdoj1465【错排公式(直接水过)】
  9. 树的直径初探+Luogu P3629 [APIO2010]巡逻【树的直径】By cellur925
  10. LuoguP2657 [SCOI2009]windy数 【数位dp】By cellur925