这个题题意是,给一个n个节点的图,在要求其一棵以1结点为根的生成树使树的边权和最小,树边权 = 对应的图边权 * 树边末端点为根的子树所有结点对于图顶点的点权和
然后就是直接跑最短路
(我爱SPFA)
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
#define N 500050
#define ll long long
const ll INF=1e15;
struct Edge {
int next,v;
ll w;
} e[N];
int h[N],cnt=0,n;
void addEdge(int a,int b,int w) {
e[++cnt].next=h[a];
e[cnt].v=b;
e[cnt].w