【JZOJ5430】【NOIP2017提高A组集训10.27】图

博客介绍了NOIP2017提高组集训中的一道图论题目,涉及无向图和边的处理。内容包括如何处理给出的边信息,以及面对询问时计算从起点到终点最小代价的策略。博主提出采用分治法,通过定义lf和rf矩阵来存储中间状态,并详细解释了如何更新这些矩阵以求解问题。总的时间复杂度分析也一并给出。

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

题目

有一个n个点的无向图,给出m条边,每条边的信息形如 <x,y,c,r> <script type="math/tex" id="MathJax-Element-28"> </script>
给出q组询问形如 <u,v,l,r> <script type="math/tex" id="MathJax-Element-29"> </script>
接下来解释询问以及边的意义
询问表示,一开始你在点u上,然后按顺序处理编号从l到r的边
对于一条边 <x,y,c,r> <script type="math/tex" id="MathJax-Element-30"> </script>,你可以进行两种操作:
如果你当前在x点或者y点上,那么你可以走这条边(从x到y或从y到x)并付出c的代价(当然你也可以不走,看操作2)
如果你不走这条边或者不可以走这条边(即你当前不在x或y上),那么你需要付出r的代价询问如果要从u点开始,按顺序处理完编号从l到r的边之后到达v点的最小代价,如果不能到达v,那么输出-1。
边和点的编号从1开始

分析

考虑分治,
当前做到区间[l,r],mid=(l+r)/2
设lf[i][x][y]表示在左区间中从x点开始,经过了i到mid的边,最后走到了y的最小代价
类似的,rf[i][x][y]表示在左区间中从x点开始,经过了mid+1到i的边,最后走到了y的最小代价。
那么我们将询问挂在l上,枚举i到mid,如果有询问的r在mid+1到r上,
则对于询问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值