题目:
题解:
加一个村庄就把这个村庄当成中转修改一下之前的最短路,0x3f是我认识的第三个很大的数
代码:
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
using namespace std;
struct hh
{
int x,y,t;
}xx[50005];
int f[205][205],t[205];
int main()
{
int n,m,i,Q,a,b,c,k,j,ii;
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++)
scanf("%d",&t[i]);
memset(f,0x3f,sizeof(f));
for (i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);a++;b++;
f[a][b]=f[b][a]=c;
}
scanf("%d",&Q);int QQ=Q;i=1;
while (Q--)
{
scanf("%d%d%d",&xx[i].x,&xx[i].y,&xx[i].t);
xx[i].x