方法一:优先队列(9203MS 21048K)
方法二:链表(9640MS 33620K)
性能分析:优先队列的方法内存占用较少,速度也更快。
注意:方法一中使用的是 greater functor, 需要重载 ">", 方法二 sort 采用默认的 less functor, 需要重载 "<".
方法一:优先队列
1. 这里的优先队列应该是使用小根堆,因此用 greater
2. 这里用构造函数初始化优先队列,而不是先建立空队列,然后不停 push. 这样做可以省去多次建堆操作,不初始化用的 vector 浪费了空间。
/*
* hdu 1434
* http://acm.hdu.edu.cn/showproblem.php?pid=1434
* 【优先队列】【priority_queue】
* 9203MS 21048K
* 1. 这里的优先队列应该是使用小根堆,因此用 greater
* 2. 这里用构造函数初始化优先队列,而不是先建立空队列,然后不停 push.
* 这样做可以省去多次建堆操作,不初始化用的 vector 浪费了空间。
*/
#include <iostream>
#include <queue>
#include <vector>
#include <functional>
#include <string>
using namespace std;
struct SPassenger
{
int iRp;
string strName;
};
bool operato