题目
博主讲的很好:https://blog.csdn.net/u013480600/article/details/21831363
#include<bits/stdc++.h>
#define en '\n'
#define m(a,b) memset(a,b,sizeof a)
using namespace std;
typedef long long ll;
const int N=1e4+5;
struct Edge{
int to;ll len;int nex;}edge[N<<1];
int head[N],tot;
inline void add(int from,int to,ll len){
edge[++tot]=(Edge){
to,len,head[from]};head[from]=tot;
edge[++tot]=(Edge){
from,len,head[to