题目大意:

给定 n m s t ;表示n个点编号为0~n-1 m条边 起点s终点t

接下来一行给定n个数;表示第i个点的救援队数量

接下来m行给定u v w;表示点u到点v有一条长度为w的边

求从s到t的最短路有几条

一条路上可以集合的救援队最多有多少

输出路径

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define LL long long
#define inc(i,j,k) for(int i=j;i<=k;i++)
#define dec(i,j,k) for(int i=j;i>=k;i--)
#define gcd(i,j) __gcd(i,j)
#define mem(i,j) memset(i,j,sizeof(i))
const int N=2e5+;
const int mod=1e9+; int n,m,s,t;
int V[N];
struct NODE{ int to,len; };
vector <NODE> G[N];
int dis[N], num[N];
int sumV[N], pre[N];
bool vis[N]; int main()
{
while(~scanf("%d%d%d%d",&n,&m,&s,&t)) {
inc(i,,n-) scanf("%d",&V[i]);
inc(i,,n-) G[i].clear();
while(m--) {
int u,v,w; scanf("%d%d%d",&u,&v,&w);
G[u].push_back({v,w});
G[v].push_back({u,w});
}
mem(sumV,); sumV[s]=V[s]; // 到i点的最短路可集合sumV[i]救援队
mem(dis,INF); dis[s]=; // 到i点的最短路长度为dis[i]
mem(num,); num[s]=; // 到i点的最短路有num[i]条
mem(pre,-); mem(vis,); // pre记录路径前驱 vis标记走过
while() {
int u, mini=INF;
inc(i,,n-)
if(!vis[i] && dis[i]<mini)
mini=dis[i], u=i;
if(mini==INF) break;
vis[u]=;
int all=G[u].size();
inc(i,,all-) {
NODE v=G[u][i];
if(vis[v.to]) continue;
if(dis[v.to]>dis[u]+v.len) {
sumV[v.to]=sumV[u]+V[v.to];
dis[v.to]=dis[u]+v.len;
num[v.to]=num[u];
pre[v.to]=u;
} else if(dis[v.to]==dis[u]+v.len) {
num[v.to]+=num[u];
if(sumV[v.to]<sumV[u]+V[v.to]) {
sumV[v.to]=sumV[u]+V[v.to],
pre[v.to]=u;
}
}
}
}
printf("%d %d\n",num[t],sumV[t]);
stack <int> s; int c=;
while(t!=-) s.push(t), t=pre[t], c++;
while(!s.empty()) {
printf("%d",s.top()); s.pop();
if(--c==) printf("\n");
else printf(" ");
}
} return ;
}

PTA 紧急救援 /// dijkstra 最短路数 输出路径的更多相关文章

  1. pta—紧急救援 (dijkstra)

    题目连接:https://pintia.cn/problem-sets/994805046380707840/problems/994805073643683840 题面: 作为一个城市的应急救援队伍 ...

  2. LA 2957 最大流,最短时间,输出路径

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=1 ...

  3. PTA 7-33 地下迷宫探索(深搜输出路径)

    地道战是在抗日战争时期,在华北平原上抗日军民利用地道打击日本侵略者的作战方式.地道网是房连房.街连街.村连村的地下工事,如下图所示. 我们在回顾前辈们艰苦卓绝的战争生活的同时,真心钦佩他们的聪明才智. ...

  4. PAT甲题题解-1030. Travel Plan (30)-最短路+输出路径

    模板题最短路+输出路径如果最短路不唯一,输出cost最小的 #include <iostream> #include <cstdio> #include <algorit ...

  5. dijstra+输出路径总结

    #include<iostream> #include<math.h> #include<memory.h> using namespace std; #defin ...

  6. VS 工程的 输出路径和工作路径的区别

    输出路径,是vs编译项目生成可执行文件的路径:工作路径是环境变量,比如我们在程序中写相对路径,就是以这个路径为基础的.在默认情况下,输出路径和工作路径都不写的话,默认是程序的bin下面的debug或者 ...

  7. HD1385Minimum Transport Cost(Floyd + 输出路径)

    Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  8. C++builder XE 安装控件 及输出路径

    C++builder XE 安装控件 与cb6不一样了,和delphi可以共用一个包. 启动RAD Studio.打开包文件. Project>Options>Delphi Compile ...

  9. HDU 1385 Minimum Transport Cost (最短路,并输出路径)

    题意:给你n个城市,一些城市之间会有一些道路,有边权.并且每个城市都会有一些费用. 然后你一些起点和终点,问你从起点到终点最少需要多少路途. 除了起点和终点,最短路的图中的每个城市的费用都要加上. 思 ...

随机推荐

  1. k3 cloud中提示总账期末结账提示过滤条件太长,请修改此过滤条件

    k3 cloud中提示总账期末结账提示过滤条件太长,请修改此过滤条件,如下图所示: 处理方法: 请尝试系统配置文件common.config中将如附件所示的参数值改大,建议值为2000,并在系统清理缓 ...

  2. 常见前端HTML5面试题

    1.H5新标签新特性 新标签:header,nav,footer,aside,article,section,Canvas,audio,video 新特性:localStorag, sessionSt ...

  3. html中内联元素和块级元素的区别

    1.下表列出了内联元素和块级元素的主要区别 html中内联元素和块级元素的区别 块级元素 行内元素 独占一行,默认情况下,其宽度自动填满其父元素宽度 相邻的行内元素会排列在同一行里,直到一行排不下,才 ...

  4. samba - 为 UNIX 实现的 Windows SMB/CIFS 文件服务器

    SYNOPSIS 总览 Samba DESCRIPTION 描述 samba 套件是在 UNIX 系统上实现“服务器信息块”(通常简称 SMB) 协议的一组程序.这个协议有时也称为“通用互联网文件系统 ...

  5. sq - 压缩一个排过序的单词列表 unsq - 解压一个排过序的单词列表

    总览 (SYNOPSIS) sq < infile > outfile unsq < infile > outfile 描述 (DESCRIPTION) sq 压缩 一个 排过 ...

  6. 一、C#获取特性(坑)

    一.C#获取特性(坑) [Description("系统状态码")] [Display(Name = "成功", Description = "请求成 ...

  7. H5手机端底部菜单覆盖中间部分内容的解决办法

    一.第一种Js动态计算中间内容的高度. 二.第二种给底部上面写个<div style="底部的高度"></div> 三.第三种给中间部分写一个margin- ...

  8. SVN中trunk,branches,tags的使用明细--项目代码的管理

    SVN在项目开发过程中有两种模式: 第一种:Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局svn://proj/|+ ...

  9. Nexus搭建Maven私服中央仓库

    一.概述 1.概要 现在的项目基本都是用Maven来管理工程,这样一来在公司内容搭建一个私服就非常有必要了,这样一来可以管理公司内部用的JAR包,也可以管理第三方的各种JAR来,以免每次都要从外网的仓 ...

  10. 《深入学习Redis(2):持久化》笔记

    参考 https://www.cnblogs.com/kismetv/p/9137897.html 一.高可用概述 提供正常服务:主从分离,快速容灾技术,数据容量的扩展.数据安全不会丢失.    持久 ...