7-1 城市间紧急救援

题目描述:
作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。
输入格式:
输入第一行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0 ~ (N−1);M是快速道路的条数;S是出发地的城市编号;D是目的地的城市编号。

第二行给出N个正整数,其中第i个数是第i个城市的救援队的数目,数字间以空格分隔。随后的M行中,每行给出一条快速道路的信息,分别是:城市1、城市2、快速道路的长度,中间用空格分开,数字均为整数且不超过500。输入保证救援可行且最优解唯一。
输出格式:
第一行输出最短路径的条数和能够召集的最多的救援队数量。第二行输出从S到D的路径中经过的城市编号。数字间以空格分隔,输出结尾不能有多余空格。

题目解读:在路径最短的前提下,找一条 在路上能集结到的救援队数量最多的路径。

#include <iostream>
#include <algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
int n,m,s,d;
int inf =10101010;//设置一个最大值
int map1[1010][1010];//设置一个地图
int help[1010];//每个城市的救援队的数量
int sumhelp[1010];//从起点走到总点所有救援队的数量
int visted[1010];//用来标记哪些点已经标记过
int dis[1010];//表示从起点到其他点的距离
int path[1010];//表示第i个点的前驱
int total[1010];//表示从起点到终点所有的最短路径
void disjie (int x)
{sumhelp[x]=help[x];for(int i=0; i<n; i++){dis[i]=map1[x][i];path[i]=-1;if(dis[i]<inf){path[i]=x;sumhelp[i]=help[x]+help[i];total[i]=1;}}//以上是初始化visted [x]=1;path[x]=-1;for(int i=1; i<n; i++){int v;int min1=inf;for(int j=0; j<n; j++){if(!visted [j]&&(dis[j]<min1)){min1=dis[j];v=j;}}visted [v]=1;//更新路径for(int k=0; k<n; k++){//两种情况if(!visted [k]&&(dis[k]>dis[v]+map1[v][k])){dis[k]=dis[v]+map1[v][k];sumhelp[k]=sumhelp[v]+help[k];total [k]=total[v];path[k]=v;}else if(!visted [k]&&dis[k]==dis[v]+map1[v][k]){total[k]=total[v]+total[k];if(sumhelp[k]<sumhelp[v]+help [k]){sumhelp[k]=sumhelp[v]+help [k];path[k]=v;}}}}
}
//输出到终点的所有经过的城市
void   find1(int x)
{if(path[x]!=-1){find1(path[x]);cout <<path[x]<<" ";}
}
int main()
{cin>>n>>m>>s>>d;memset(map1,inf,sizeof(map1));memset(visted,0,sizeof(visted));for(int i=0; i<n; i++){cin>>help[i];}for(int i=0; i<m; i++){int v1,v2,w;cin>>v1>>v2>>w;map1[v1][v2]=w;map1[v2][v1]=w;}disjie(s);cout <<total[d] <<" "<<sumhelp[d]<<endl;find1(d);cout <<d;
}

一边看不懂没关系,多看几遍,其义自见哦!

7-1 城市间紧急救援相关推荐

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

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

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

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

  3. pta紧急救援java,PTA——城市间紧急救援

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

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

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

  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. 【公司金融课堂学习笔记】2、企业融资—风投如何影响企业价值
  2. 5.8.1 创建类型实例
  3. 熟悉html css,编写HTML和CSS的前端开发中不一定熟悉JavaScript
  4. CentOS7下安装 mysql5.7.25(glibc版)(可用)
  5. 【渝粤教育】国家开放大学2019年春季 0757-22T经济法基础实务 参考试题
  6. 抖音:红、蓝海品类,如何创作优质内容?
  7. 都说数据是资产,那么到底什么是数据资产?
  8. WINDOWS下输入法中英文切换
  9. 非对称加密算法——RSA
  10. STM32----STM32的中断优先级理解
  11. 网页数据抓取之当当网
  12. excel中的链接转换为超链接
  13. 课后作业——Day11
  14. 【LeetCode刷题】栈与队列专题
  15. 转载:android开源项目汇总
  16. 双目测距+点云——使用MiddleBurry数据集的图片
  17. 【FinancialKnowledge】商业银行业务知识
  18. 开放标准驱动工业物联网创新
  19. pytorch gpu安装教程(Perfect完美系列)
  20. 抖音表情包,新版UI+迭代功能说明

热门文章

  1. CVPR:Weakly-supervised Deep Convolutional Neural Network Learning for Facial Action Intensity Estima
  2. 电大计算机专业软件工程试题,2021国家开放大学电大本科《软件工程》期末试题及答案(试卷号:1260)...
  3. PotPlayer 1.7.20977 多语言版本 64位和32位,本地视频播放器的最佳不二之选
  4. Linux中文乱码透彻篇
  5. gappproxy教育网代理
  6. office多级列表编号设置
  7. 开源神器:可快速在 iOS 设备上安装 Windows、Linux 等操作系统!
  8. SaaS:独立应用创新向全程电子商务蜕变
  9. GBase 8a Python Connector使用排雷
  10. Dataset之mpg:mpg汽车油耗数据集的简介、下载、使用方法之详细攻略