最开始这题没有写对,找了半天错误,以为Dijkstra函数写错了,最后发现没有将矩阵初始化为INF。。。真令人头大。
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int N,M,S,D;
int mapp[510][510]; //邻接矩阵
int nums[510]; //节点消防员数目
int Dis[510]; //最短距离数组
bool used[510]={
0}; //标志
int pre[510]; //前驱节点
int sum[510]; //走到节点i召集的消防员最大总数
int cnt[510]; //节点i同长路径数目
vector<int> path;
void dijkstra(int s)
{
fill(Dis,Dis+N,INF);
fill(used,used+N,false);
fill(pre,pre+N,-1);
Dis