团体程序设计天梯赛-练习集
PAT L2-001 紧急救援
https://www.patest.cn/contests/gplt/L2-001
在Dijkstruck的基础上判断最短路径条数,再判断最大救援队数,判断再记录前驱。
重点有:
- 当路径松弛后如果相同要进行比较赋值,而小于的话要根据前驱赋值。
- 在对当前最短路径个数加时要注意把自身及前驱的路径想加。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int MAX = 505;
int const INF = 0x3fffffff;
int map[MAX][MAX];
int road[MAX];
int fire[MAX];
int firetruck[MAX];
bool vis[MAX];
int many[MAX];
int path[MAX];
void Dijkstra(