POJ1062 昂贵的聘礼 单源最短路径变形 dijkstra算法
思路:以物品为结点,物品之间的优惠价格为边权值建图,酋长10000金币当做0号结点,题意就是求图中各结点到0号结点的最短路长度,再加上终点处物品的价值,恰好就是探险家经过这个物品买卖途径所需要付出的金钱。用dijkstra算法求出单源最短路径,从各个结点的最短路径中选出最短的那条就是答案。基本还是经典最短路问题,但做了一点小小变形主要是:
1 有结点等级限制,需要枚举等级
2 把终点的物品价值计入最短路径中去,并且找最小的最短路径输出
3 要注意是单向图,即物品替换关系是单向的
Source Code
Problem: 1062 | User: yangliuACMer | |
Memory: 300K | Time: 32MS | |
Language: C++ | Result: Accepted |