UVa136 priority_queue优先队列

来源:互联网 发布:iphone实用软件排行 编辑:程序博客网 时间:2024/05/16 11:56
#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;}

0 0
原创粉丝点击