1003 Emergency (25 分)
一、题目大意
题目传送门:PAT-A-1003
求最短路径的数量,和最短路径中的最大点权和
二、解题思路
Dijkstra算法求最大点权和的最短路径,+DFS(打表)求最短路径数量
三、AC代码
代码解析见文中注释部分
#include <bits/stdc++.h>
using namespace std;
template <typename T = int>
T read(){
T x;
cin >> x;
return x;
}
int N, M, S, T;
struct Edge{
int u,v,w;
};
typedef pair<int,int> pr;
vector<int>v, dis, vis, sum, num;
vector<Edge>edges;
vector<vector<int>>mp;
void addEdge(int x, int y, int z){
// 加边
edges.push_back({
x, y, z});
mp[x].push_back(edges.size()-1);
}
void Dijkstra(int S){
// 最小生成树算法
for(auto