PS:邻接表可以解决重复边的问题
static int head[] = new int[1005]; // 存放链头
static edge[] e = new edge[1005];
static int len; // 边的个数
//添加有向边
static void add(int u, int v, int w) { //添加 u指向v 这条边,权值为w
e[len] = new edge(v, w, head[u]); // 前插法
head[u] = len++; // 将u指向新添加的边
}
//添加无向边
static void add2(int u, int v, int w) {
add(u, v, w);
add(v, u, w);
}
class edge {
int v, w, next; //next 表示下一个指向
public edge(int v, int w, int next) {
this.v = v;
this.w = w;
this.next = next;
}
public edge() {
}
}