文章目录

  • 题目分析
  • 题目链接

题目分析

分析:求单源最短路,使用dijkstra()算法。
最短路的条数,和最短路中 人数最多的一条,输出最多人数。

本题点比较少,使用邻接矩阵d[N][N]来存。

ac代码

#include<bits/stdc++.h>
using namespace std;
const int N = 510;int n, m , S, T;
int d[N][N];
int w[N]; //点权
int dist[N]; //最短路
int cnt[N];//最短路的数量
int sum[N]; // 人数求和bool st[N]; //是否求出过最短路void dijkstra(){memset(dist, 0x3f , sizeof dist); // 距离初始化dist[S] = 0; // cnt[S] = 1; //初始化:从起点出发的路径只有一种sum[S] =w[S];//起点的点权是w[S]for(int i = 0 ;i< n; i++){int t = -1;for(int j = 0 ;j<n; j++){if(!st[j] &&(t== -1 || dist[j]< dist[t]))t = j;}st[t]  =true;for(int j =0 ;j<n; j++){//最短路唯一if(dist[j] >dist[t] + d[t][j]){dist[j] =dist[t] +d[t][j];cnt[j] =cnt[t]; //到j的最短路数量 = 到t的最短路数量sum[j] = sum[t] + w[j]; // 最大人数更新}//最短路不唯一,合并else if( dist[j] == dist[t] +d[t][j]){cnt[j] += cnt[t]; //最短路数量合并sum[j] = max(sum[j] , sum[t] + w[j]); //最大人数更新}}}
}
int main(){cin >> n >> m >> S >> T;for(int i =0 ; i< n; i++)  cin>> w[i];memset(d, 0x3f, sizeof d);   //邻接矩阵初始化 while(m--){int a, b, c;cin >> a >> b >> c;d[a][b] =d[b][a] = min(d[a][b] ,c); //读入距离,读入最小的一条}dijkstra();//输出 最短路数量,最大人数cout<< cnt[T] <<" "<<sum[T]<<endl;
}

题目链接

PAT甲级1003 Emergency

ACWING1475. 紧急情况

PAT甲级1003 Emergency:[C++题解]dijkstra求最短路、最短路条数相关推荐

  1. PAT甲级 1003 Emergency 单源Dijkstra最短路

    Solution: 这道题的意思是给定起点和终点,求最短路.但还有一个要求,就是每个城市有救援队,我们要在求得最短路的情况下集结沿途尽可能多的救援队人数. 这道题的n值较小,直接dijkstra即可. ...

  2. PAT甲级 1003 Emergency

    PAT甲级 1003 Emergency As an emergency rescue team leader of a city, you are given a special map of yo ...

  3. PAT甲级1003 Emergency Dijkstra算法(堆优化版/朴素版)

    前言   最近花了很多的时间在写JAVA项目上面,疏忽了算法和数据结构的学习.最近突然醒悟基础更为重要,打算从今天开始每天抽出一些时间做下PAT甲级的题目.现有题库的前两题很简单,从第三题开始吧. 题 ...

  4. 【qduoj - 1121】小明的贪心题(Dijkstra最短路 + 最短路条数)

    题干: 小明的贪心题 描述 小明来到青岛上学已经一年了,他给青岛这座城市画了一张地图.在这个地图上有n个点,小明的起始点为1号点,终点为n号点,并且地图上的所有边都是单向的.小明知道从i号点到j号点的 ...

  5. PAT(甲级) 1003. Emergency

    1003 . Emergency (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emer ...

  6. PAT 甲级1003 Emergency 题解

    在PAT1003 Emergency 这道题上上卡了很久,多次修改考虑漏掉的Case后,成功解决问题. 题目描述 每个输入文件包含一个测试用例. 对于每个测试用例,第一行包含4个正整数:N(≤500) ...

  7. 【PAT - 甲级1003】Emergency (25分)(Dijkstra,最短路条数,双权值最短路)

    题干: As an emergency rescue team leader of a city, you are given a special map of your country. The m ...

  8. PAT甲级1087 All Roads Lead to Rome (30分):[C++题解]dijkstra求单源最短路综合、最短路条数、保存路径

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 首先这是一道dijkstra算法求最短路的题目,不过此题较为复杂.首先需要将字符串城市名映射成数字,这里使用hash table 名 ...

  9. 图论入门(一),拓扑排序生成拓扑序列与Dijkstra求最短路

    基本知识 Dijkstra基本思想 拓扑排序思维视频讲解 848:有向图的拓扑排序 题目链接 题解: #include<bits/stdc++.h> using namespace std ...

最新文章

  1. deepin启动盘无法引导安装_深度启动盘制作工具(Deepin Boot Maker)怎么安装kubuntu?Deepin Boot Maker图文教程...
  2. java: jstl.jar和standard.jar的下载地址与使用
  3. [.NET开发] C#编程调用Cards.dll实现图形化发牌功能示例
  4. 1.4 Set集合:HashSet和TreeSet类
  5. 背包类树形DP 选课题解
  6. mysql in优化_MySQL的一次优化记录 (IN子查询和索引优化)
  7. LUNA16_Challange数据预处理2
  8. php tablesorter,插件 jQuery.tablesorter 中文API文档
  9. GX works2 使用总结
  10. 笔记本拆c面_给老笔记本更换高清屏的经验与总结(翻车记录)
  11. u盘装华为服务器系统教程,华为服务器u盘重装系统
  12. php 验证码一直不对,php验证码错误
  13. FBreader问题记录及多端同步心得开篇
  14. 机器学习——激活函数sigmoid、tanh、ReLU和softmax
  15. SPADE 阅读笔记
  16. 使用阿里云云服务器一年多的感受
  17. java aws_AWS学习笔记(八)--S3 JAVA SDK
  18. 2011考研数学二第(11)题——第一类曲线积分球弧长
  19. 软件工程之软件过程模型
  20. 国内linux内核代码贡献率,[图]AMD为Linux内核贡献27.5万行代码 确认Van Gogh APU支持DDR5和VCN3...

热门文章

  1. CentOS 安装Zabbix 手记
  2. 神经网络的参数迁移和共同本征态
  3. npm run dev 后dist 被情况_npmamp;npxamp;nvmamp;yarn 介绍
  4. python迭代数据类型_在大型数据集上自动迭代推断数据类型和最小项大小
  5. 【Matlab】绘制不同颜色线条
  6. STM32 进阶教程 1 - micropython 移植
  7. Scan Chain的原理与实现(实践)-top down flow
  8. python基础1(来自廖雪峰的官方网站)
  9. 【PC工具】开源绿色windows右键管理工具软件
  10. 【arduino】arduino ISP下载程序方法,用arduino uno给arduino nano下载程序