题目描述:给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。输入:输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点t。n和m为0时输入结束。(1<n<=1000, 0<m<100000, s != t)输出:输出 一行有两个数, 最短距离及其花费。样例输入:3 21 2 5 62 3 4 51 30 0样例输出:9 11样例太水,自己弄了组数据:View Code i Read More
posted @ 2012-04-18 18:28 Muse牧马 Views(274) Comments(0) Diggs(0) Edit
priority_queue的用法priority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue, 以加深对 priority_queue 的理解#include <iostream>#include <algorithm>#include <vector>using namespace std;class priority_queue{pri Read More
posted @ 2012-04-18 18:13 Muse牧马 Views(225) Comments(0) Diggs(0) Edit