Big_Bishop @ 2024-02-05 15:38:28
我的80分代码,wa了最后两个点,没有过样例 建边如下
const int N=205,M=5005;
struct edge{
int to,nxt;
ll w;
}e[M<<1];
int head[N],tot=-1;
void add(int u,int v,ll w){
e[++tot]={v,head[u],w};
head[u]=tot;
e[++tot]={u,head[v],0};
head[v]=tot;
}
这是AC代码的建边,我只改变了tot的初始值
const int N=205,M=5005;
struct edge{
int to,nxt;
ll w;
}e[M<<1];
int head[N],tot=1;
void add(int u,int v,ll w){
e[++tot]={v,head[u],w};
head[u]=tot;
e[++tot]={u,head[v],0};
head[v]=tot;
}
by XiaoYiii @ 2024-02-05 15:44:46
@Xyh110126 请问您的头数组初始化是 -1 还是 0 (遍历终止条件),如果是后者的话,一开始的赋值语句将头数组为0似乎就没有读入第一条边
by only_a_speaker @ 2024-02-05 15:45:29
您好,在遍历邻接表时,当前边的编号为零,您怎么确定是该访问编号为零的边,还是这个邻接表的所有边已经访问完了?
by Big_Bishop @ 2024-02-05 15:47:19
谢谢dalao,此帖结