余歆 @ 2021-12-13 10:52:02
搞不懂,很不理解,我用的堆优化Prim
q.push(make_pair(0,1));
这是对的
q.push(make_pair(1,0));
这却是错的 就是必须前距离后标号??
for(register int i=2;i<=n;++i) dis[i] = inf;
这也是错的
memset(dis,127,sizeof(dis));
第二篇题解这样却AC了?! WHAT?
by Hollis_Yang @ 2021-12-13 11:22:15
@余歆
by Hollis_Yang @ 2021-12-13 11:23:10
第一个问题如果你认为可以交换位置的话,建议重新学习一下prim
by Hollis_Yang @ 2021-12-13 11:28:41
不知道怎么说,你写堆优化的话个人建议STL优先队列+结构体+重载运算符(个人喜好),这样就不会出问题了
by Liweiang @ 2021-12-13 11:31:01
memset(dis,127,sizeof(dis));
这样的写法会将dis数组都赋成一个大值
by PassName @ 2021-12-13 12:03:16
没错,对于数组而言,用memset不会爆,你的pair用的也有问题,建议你把算法再巩固一下
by 余歆 @ 2021-12-15 08:13:50
@htssm @liweiang09 @单南松 终于搞懂了,感谢各位大神指导