【图论】【最短路】 pku1511 Invitation Cards

本文介绍了一个使用SPFA算法解决特定图论问题的例子。通过构建正反向邻接表,实现从起点出发到达各点并返回的最短路径计算。文章详细展示了C++代码实现过程,并分析了算法的时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【题目】:Invitation Cards

【类型】:图论

【难度】:中等

【来源】:pku1511

【关键字】:SPFA

【题目大意】:给N个点的路径信息,给定一个点作为起点,求该点到每个点再回来总路程最小值。

 -----------------------------------------------------------------------------------------------------------------------------------------

【自己的分析】:

【正确的算法分析】:之前用DIJ做过类似的题,但这题数据量很大,用邻接表+SPFA。出去每个点直接用SPFA,求返回的路径的解决方法是将所有边反向保存,再对起点做一次SPFA,即是返回路径长度。

【数据结构】:邻接表

【其他优化】:

【时间复杂度】:

【学到了什么知识经验】:第一次写用正反两个邻接表边数组edge[MAXE]保存,后来修修补补,看别人的把两个边数组变成一个数组edge[2*MAXE],就AC了。不知何故。最近经常这样,错的代码似乎没改什么,交第二次就能AC。。。

【同类型题目】:pku2387的强化版

  -----------------------------------------------------------------------------------------------------------------------------------------

【其他】:

 http://acm.pku.edu.cn/JudgeOnline/problem?id=1511

 

  -----------------------------------------------------------------------------------------------------------------------------------------

【代码】:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值