题目:
发现每条边要走两次,每个点要走它连接的边数次。
所以把边的权值赋成 本身的值+两个端点的点权,求最小生成树即可。
!边权其实是 本身的值*2+两个端点的点权;
别忘了起点要多加一次,所以找一个点权最小的加上即可。
#include#include #include #include using namespace std;int n,m,a[10005],fa[10005],x,y,tmp;long long ans=1005;struct Edge{ int x,y,w; Edge(int x=0,int y=0,int w=0):x(x),y(y),w(w) {}}edge[100005];bool cmp(Edge x,Edge y){ return x.w