这道题需要用到最小生成树
我们首先将代价大于 C C C的管道标记好。
(没大于不用管,不参与最小生成树)
再跑一次最小生成树。
注意:
- 跑到一个点就要累计管道代价。
- 如果跑不完所有点就输出 − 1 -1 −1。
#include<algorithm>
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
int a[3010][3010],x[3010],y[3010],b[3010],c[3010];
int n,m,minn,k,ans;
int <