每个物品是一个节点,当前dis是直接用钱换的价值,从被申请交换的物品向申请交换的物品方向建边,边权是交换后还需要的优惠价。至于等级的限制,因为最后一定要和酋长交换,否则答案就是酋长给出的原价,所以将所有包含酋长的等级长为m的区间都枚举出来,求所有点到酋长的最短路,spfa就直接把所有点push一遍到queue中就行。
C++ Code
1 |
|
每个物品是一个节点,当前dis是直接用钱换的价值,从被申请交换的物品向申请交换的物品方向建边,边权是交换后还需要的优惠价。至于等级的限制,因为最后一定要和酋长交换,否则答案就是酋长给出的原价,所以将所有包含酋长的等级长为m的区间都枚举出来,求所有点到酋长的最短路,spfa就直接把所有点push一遍到queue中就行。
C++ Code
1 | #include <iostream> |