数组模拟邻接表很高效,代码实现如下:

struct EDGE
{
	int next;//下一条边的编号 
	int to;//这条边指向的点 
	int co;//这条边的花费 
}edge[maxn*4];
void add(int from,int to,int co)//建一个从from到to,代价co的边 
{
	edge[++qr].next=head[from];//新边指向旧边,倒着连边 
	edge[qr].to=to;
	edge[qr].co=co;
	head[from]=qr;//更新下一次要用到的旧边(目前的边) 
}

难解之处:倒着连边,再倒着找边


欢迎来到睿屿青衫丶

avatar
 
微笑晕爱心心碎调皮难过尴尬惊讶惊吓酷泪奔吐彩虹害羞敲打喝彩抠鼻吐星星眼擦汗大笑蛋糕呲牙瞌睡咒骂吃瓜贪财骷髅鬼脸委屈奋斗笑哭摸头小纠结点赞笑崩发呆绿帽狂汗亲嘴么么机智抑郁色鄙视坏笑白眼左哼哼右哼哼捂嘴鼓掌可怜香肠嘴闭嘴墨镜认错思考拒绝鲜花愤怒嘟嘴不忍直视嘘emm流泪yeah睡觉扔鞋石化生病抽烟吐血偷笑衰兔牙害怕震惊捂嘴笑打盹疑问亲亲指开心喜欢阴险郁闷坏笑2搞怪汪好奇汪机智汪冷漠汪搞怪哈摆拍柴柴犬生气柴流泪柴张嘴柴挥爪柴佩服勾引拳头胜利赞踩滑稽
  订阅  
提醒