邻接表的模板代码解释
int h[N], e[M], ne[M], idx;
// h[i]: 表示第i个节点的第一条边的idx
// ne[idx]: 表示与第idx条边同起点的下一条边的idx
// e[idx]: 表示第idx条边的终点
// N: 节点数量
// M: 边的数量
// i: 节点的下标索引
// idx: 边的下标索引
void add(int a, int b)
{
e[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}
int h[N], e[M], ne[M], idx;
// h[i]: 表示第i个节点的第一条边的idx
// ne[idx]: 表示与第idx条边同起点的下一条边的idx
// e[idx]: 表示第idx条边的终点
// N: 节点数量
// M: 边的数量
// i: 节点的下标索引
// idx: 边的下标索引
void add(int a, int b)
{
e[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}