算法入门经典-第五章 例题5-7 丑数
Posted Tina
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法入门经典-第五章 例题5-7 丑数相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<vector> #include<queue> #include<set> using namespace std; typedef long long ll; const int coeff= {2,3,5}; int main() { //一些常见的优先队列,STL提供了更为简单的定义方法 //对于任意丑数x 则 2x,3x,5x也是丑数,判断一个丑数是否生成过 //每次取出最小的丑数,生成3个新的丑数 priority_queue<LL,vector<LL>,greater<LL> > pq; set<LL> s; pq.push(1); s.insert(1); for(int i=1;; i++) { LL x=pq.top(); pq.pop();//序列 if(i==1500) { cout<<"The 1500th ugly number is"<<x<<".\n"; break; } for(int j=0; j<3; j++) { LL x2=x*coeff[j]; if(!s.count(x2)) { s.insert(x2); pq.push(x1); } } return 0; }
以上是关于算法入门经典-第五章 例题5-7 丑数的主要内容,如果未能解决你的问题,请参考以下文章