//ne[a] 指的是a点的上一条边的编号
//idx 为每一条边的编号
//e[idx] 指的是a点所连接的点,即b点
//h[a] 中存的就是a点的边的编号,即idx
// 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表的头结点
int h[N], e[N], ne[N], idx;
// 添加一条边a->b
void add(int a, int b)
{
e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}
// 初始化
idx = 0;
memset(h, -1, sizeof h);
赞