/*
优先队列, 两个优先性处理。。
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#define manx 350
using namespace std;
struct temp{
string str;
int num;
int point;
}node[manx];
int k;
struct comp{
bool operator()(temp &t1,temp &t2){
return t1.num<t2.num || t1.num==t2.num && t1.point>t2.point;
}
};
priority_queue<temp, vector<temp>, comp >que;
void PN(){
for(int i=1;i<=k;i++)
cout<<node[i].str<<" "<<node[i].num<<endl;
}
int main(){
int n;
while(cin>>n){
while(!que.empty()) que.pop();
temp te;
for(int i=1;i<=n;i++){
cin>>te.str>>te.num;
te.point=i;
que.push(te);
}
HDU 1872稳定排序优先队列
最新推荐文章于 2018-08-29 09:49:13 发布
该博客探讨了如何使用优先队列实现稳定排序,并通过一个示例程序展示了处理具有两个优先级的情况。程序中定义了一个自定义比较函数,用于处理相同优先级时的排序规则。在读取输入数据后,程序会根据给定条件判断排序是否稳定,并输出相应的结果。
摘要由CSDN通过智能技术生成