【题解】洛谷P1119 灾后重建(floyd)

这是一个有条件的最短路问题,当时间为t时某个村庄才会被修好,修好的村庄之间的路才能贯通、求最小路,那么我们就记录t数组,在floyd前提条件下判断中间点村庄修好的时间是否小于等于给的时间,得到最短路。如果开头结尾村庄修好的时间比给的时间小或相等,并且开头和结尾的村庄有边相连,那么就输出最短路的答案,否则输出-1

 

#include
#include
#include
#include
#include
using namespace std;
const int maxn=200+10;
int a[maxn][maxn];
int t[maxn];
int n,m,q;
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=0;i>start>>end>>time;
		for(;(k

 

你可能感兴趣的:(题解,最短路)