您的位置:首页 > 产品设计 > UI/UE

UVa136 priority_queue优先队列

2015-07-16 18:49 711 查看
#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#include<set>
#include<vector>
#include<map>
using namespace std;
struct cmp{//优先队列优先级高的先出队
bool operator()(long long a,long long b){//如果a>b,a的优先级<b
return a>b;
}
};
long long a[]={2,3,5};
int main()
{
priority_queue<long long,vector<long long>,cmp> pq;
set<long long> sets;
pq.push(1);
sets.insert(1);
long long num=1,x,top;
while(num<1500)
{
top=pq.top();
for(int i=0;i<3;i++){
x=top*a[i];
if(sets.count(x)==0){
pq.push(x);
sets.insert(x);
}
}
pq.pop();
num++;
}
printf("The 1500'th ugly number is %lld.\n",pq.top());
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ uva STL