Uva 136 丑数
2016-05-26 14:55
375 查看
//最小的丑数是1,对于任意丑数 x ,2x、3x、5x 也都是丑数 //同一个丑数有多种生成方式,所以需要判断一个丑数是否生成过 #include<iostream> #include<vector> #include<queue> #include<set> using namespace std; typedef long long LL; const int coeff[3]={2,3,5}; //越小的整数优先级越低的优先队列 //priority_queue<int> s; int main(){ //越小的整数优先级越大的优先队列 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(); //top()取队首元素,但不删除 pq.pop(); //出队 if(i==1500){ cout<<"The 1500'th ugly number is "<<x<<".\n"; break; } for(int j=0;j<3;j++){ LL x2=x*coeff[j]; if(!s.count(x2)) { //count()--返回某个值元素的个数 s.insert(x2); //insert()--在集合中插入元素 pq.push(x2); } } } return 0; }
相关文章推荐
- 大数据量导出文件优化
- (转)How To Kill runaway processes After Terminating Concurrent Request
- 判断2000年---2500年之间的闰年
- PullToRefreshListView的使用
- 编写一个程序从键盘输入字符,并按要求输出
- 获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列
- iOS 项目中.pch 预编译文件创建
- 将数组A中的内容和数组B中的内容进行交换
- 用多种方法交换两个数的值
- 输出100~200之间的素数
- fastcgi与php-fpm之间关系
- flume 用户指南 - part 3
- OpenGLES---熟悉全局变量uniform,局部变量attribute,共享变量varying
- shell之while循环和文件描述符
- Android Service最全面的解析
- Unity3D中的线性插值Lerp()函数解析
- iOS开发之提取本地通讯录数据
- iOS强制屏幕旋转
- postgres 正则表达式 转
- Android Camera使用详解