int n,m; //n表示点数,m表示边数
int first[maxn]; //first数组代表一个点所指向的边
int u[maxm],v[maxm],w[maxm],next[maxm]; //u表示边的起点,v表示边的终点,w表示边的权值
void read_graph() { //初始化邻接链表,即得到最初的图
scanf("%d %d",&n,&m); //读入n,m
for(int i=0;i<n;++i) first[i]=-1; //将first数组全部置为-1,即null
for(int e=0;e<m;++e) { //读入每条边
scanf("%d %d %d",&u[e],&v[e],&w[e]); //读入每条边的起点,终点,权值
next[e]=first[u[e]]; //让边指向边的起点所指向的边
first[u[e]]=e; //让点指向本条边
}
}
时间: 2025-01-20 05:31:27