PTA——城市间紧急救援

作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。

输入格式:

输入第一行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0 ~ (N−1);M是快速道路的条数;S是出发地的城市编号;D是目的地的城市编号。

第二行给出N个正整数,其中第i个数是第i个城市的救援队的数目,数字间以空格分隔。随后的M行中,每行给出一条快速道路的信息,分别是:城市1、城市2、快速道路的长度,中间用空格分开,数字均为整数且不超过500。输入保证救援可行且最优解唯一。

输出格式:

第一行输出最短路径的条数和能够召集的最多的救援队数量。第二行输出从S到D的路径中经过的城市编号。数字间以空格分隔,输出结尾不能有多余空格。

输入样例:

4 5 0 3

20 30 40 10

0 1 1

1 3 2

0 3 3

0 2 2

2 3 2

输出样例:

2 60

0 1 3

#include

#include

#include

#include

#include

using namespace std;

const int inf=0x3f3f3f3f;

const int N=1001;

int pre[N],flag[N],a[N][N],dist[N][2],city[N],cnt[N];

int n,m,s,d;

void dijkstra()

{

pre[s]=-1;

flag[s]=1;

dist[s][0]=0;

dist[s][1]=city[s];

cnt[s]=1;

while(1){

int min=inf,t;

for(int i=0;i

if(!flag[i]&&dist[i][0]

min=dist[i][0];

t=i;

}

}

if(t==d||min==inf){

break;

}

flag[t]=1;

for(int i=0;i

if(!flag[i]&&dist[i][0]>dist[t][0]+a[t][i]){

dist[i][0]=dist[t][0]+a[t][i];

dist[i][1]=dist[t][1]+city[i];

pre[i]=t;

cnt[i]=cnt[t];

}

else if(!flag[i]&&dist[i][0]==dist[t][0]+a[t][i]){

cnt[i]+=cnt[t];

if(dist[i][1]

dist[i][1]=dist[t][1]+city[i];

pre[i]=t;

}

}

}

}

}

void print(int p)

{

if(p>=0){

print(pre[p]);

if(p==s){

printf("%d",p);

}

else{

printf(" %d",p);

}

}

}

int main()

{

cin>>n>>m>>s>>d;

for(int i=0;i

for(int j=0;j

a[i][j]=inf;

}

}

for(int i=0;i

cin>>city[i];

dist[i][0]=inf;

pre[i]=-1;

}

while(m--){

int t1,t2,t3;

cin>>t1>>t2>>t3;

a[t1][t2]=a[t2][t1]=t3;

}

for(int i=0;i

if(a[s][i]

dist[i][0]=a[s][i];

dist[i][1]=city[s]+city[i];

pre[i]=s;

cnt[i]=1;

}

}

dijkstra();

printf("%d %d\n",cnt[d],dist[d][1]);

print(d);

printf("\n");

return 0;

}

linjiayina

发布了93 篇原创文章 · 获赞 3 · 访问量 4313

私信

关注

标签:cnt,dist,救援,int,城市,PTA,快速道路,紧急,include

来源: https://blog.csdn.net/linjiayina/article/details/104095767

pta紧急救援java,PTA——城市间紧急救援相关推荐

  1. PTA 天梯赛习题集 L2-001 城市间紧急救援

    城市间紧急救援 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上.当 ...

  2. 5-35 城市间紧急救援 (25分) pat 数据结构

    题目连接 https://pta.patest.cn/pta/test/15/exam/4/question/862 5-35 城市间紧急救援   (25分) 作为一个城市的应急救援队伍的负责人,你有 ...

  3. 7-15 城市间紧急救援 (10 分)

    7-15 城市间紧急救援 (10 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速 ...

  4. 7-1 城市间紧急救援

    7-1 城市间紧急救援 题目描述: 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道路 ...

  5. PTA7-12 城市间紧急救援 (25 分)(dijkstra+dp)(简单易懂的写法)

    PTA7-12 城市间紧急救援 (25 分) 关于这个题呢,我当时也想了很久没有一点头绪.所以,菜鸡的我一如既往的打开了CSDN(手动滑稽).我看了很多大佬的写法,最普遍的应该就是dijkstra+d ...

  6. 7-11 城市间紧急救援 (25 分)

    7-11 城市间紧急救援 (25 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速 ...

  7. 城市间紧急救援 (25 分)

    //迪杰斯特拉算法求城市间紧急救援 #include<iostream> #include<cstring> using namespace std; #define num ...

  8. 城市间紧急救援(25 分)

    这个题目,一开始用数组统计路径个数,在更新最短路的路径个数时总是错误,后来直接从起点回溯了一遍,就可以了, 更新最短路的时候有两个权值因素,一个是路径长度一个是数目,在路径在同一个结点的时候要选择数目 ...

  9. 5-35 城市间紧急救援 (25分)

    5-35 城市间紧急救援 (25分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道 ...

最新文章

  1. Kindeditor学习中的那些坑
  2. 华为UPS“内外”兼修
  3. 原生Js_使用setInterval() 方法实现图片轮播功能
  4. F# -- TCP/IP小测试
  5. 2021银川Problem D. Farm(不保证正确性)
  6. 让数据库运行在浏览器里?TiDB + WebAssembly 告诉你答案
  7. Django 项目部署
  8. UBT26:ubuntu安装genymotion安卓模拟器
  9. 英语四级和计算机二级考试时间安排,计算机二级考试时间一年几次呢
  10. python 3d pca_python – matplotlib中的3D PCA:如何添加图例?
  11. oracle 结果集已耗尽_SQLException:耗尽结果集
  12. 关于shell unix下,直接执行shell与sh 执行 或加 . 脚本 的区别及含义
  13. HtmlUnit、Jsoup、webmagic基本介绍
  14. 微信「搜一搜」功能简直就是宝藏功能,原来这么好用!
  15. 范宇的Python学习笔记
  16. MacBook安装Windows Server(非虚拟机)
  17. Infrastructure-Based Object Detection and Tracking for Cooperative Driving Automation: A Survey
  18. 长沙理工大学计算机科学与技术专业排名,2019长沙理工大学专业排名
  19. 京东面试心得(部门是京东物流)
  20. CARSIM2020安装教程

热门文章

  1. Helix MP3解码库脱离汇编指令束缚,运行在任何处理器上的解决方案
  2. 第三份工作(一)编写中
  3. MobaXterm(终端工具)下载安装使用教程
  4. 【渝粤题库】陕西师范大学100200 信息技术教育应用 作业 (专升本、高起专、高起本)
  5. 50个超酷photoshop动作演示及下载
  6. Win11如何创建子账户?Win11子账户设置方法
  7. 第二章(二)、开发注册功能
  8. 2003 php5.4,【php】在Windows2003下配置Apache2.4与php5.4
  9. s32k1xx的FLASH学习笔记Flash Memory Module (FTFC)
  10. 读俞敏洪老师自传有感