POJ1062 昂贵的聘礼 单源最短路径变形 dijkstra算法

思路:以物品为结点,物品之间的优惠价格为边权值建图,酋长10000金币当做0号结点,题意就是求图中各结点到0号结点的最短路长度,再加上终点处物品的价值,恰好就是探险家经过这个物品买卖途径所需要付出的金钱。用dijkstra算法求出单源最短路径,从各个结点的最短路径中选出最短的那条就是答案。基本还是经典最短路问题,但做了一点小小变形主要是:

1 有结点等级限制,需要枚举等级 

2 把终点的物品价值计入最短路径中去,并且找最小的最短路径输出

3 要注意是单向图,即物品替换关系是单向的

Source Code

Problem: 1062   User: yangliuACMer
Memory: 300K   Time: 32MS
Language: C++   Result: Accepted


posted @ 2012-01-03 19:23  yangleo  阅读(215)  评论(0编辑  收藏  举报