题目来源:http://bailian.openjudge.cn/practice/1062/
解题思路:
- 假设冒险家自身是第0号物品,可以将这道题目理解为经过一系列的物品的交换,花费最少的金币换得酋长的1号物品。
-将其看作图论,建图的时候,每次遇到一个物品及其原价,可以设置0号物品到该物品的距离为该物品的价值。即表明冒险家直接购买物品需要花费的金币。
- 对于某个物品的替代品,可以设置为替代品的编号到原物品编号之间的花费为“优惠价格”,无论经过多少次交换,最后必须和酋长进行交换,而酋长对冒险家交换过的物品等级有限制,假设酋长的地位为Q,可以忍受的等级差距为M,那么就可以枚举等级差距为M的等级范围。即[Q-M, Q],[Q-M+1, Q+1]...[Q, Q+M]。
- 将所有等级限制范围内可以交换花费的最小金币求取最小值,即为最少花费的金币。
AC代码
1 |
|