求第1500个丑数的精炼算法(转自 算法竞赛入门经典 第二版)
2016-10-27 17:02
295 查看
题目:
我们把只包含因子2,3和5的数称作为丑数。求按从小到大的顺序的第1500个丑数。
例如6,8都是丑数,但是14不是,因为它包含因子7。习惯上我们把1作为第一个丑数。
#include<iostream>#include<vector>#include<queue>#include<set>using namespace std;typedef long long LL;const int coeff[3] = {2, 3, 5};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(); 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)) { s.insert(x2); pq.push(x2); } } } return 0;}
相关文章推荐
- 算法竞赛入门经典第二版第一章语言篇
- UVa1586 分子量 算法竞赛入门经典第二版CH-3习题3-2
- 刘汝佳p41,3-4(竖式问题)算法竞赛入门经典第二版
- 算法竞赛入门经典 第二版 习题9-2 免费糖果 Free Candies uva10118
- 分数化小数 (decimal) 算法竞赛入门经典 第二版 习题 2-5
- 算法 算法竞赛入门经典第二版 2-6 排列
- 刘汝佳p35,2-6(123排列)算法竞赛入门经典第二版
- 算法竞赛入门经典 第二版 习题4-1 象棋 Xiangqi uva1589
- 「算法竞赛入门经典 第二版」第 1、2章 循环结构程序设计 习题解答
- 算法竞赛入门经典 第二版 例题11-4 电话圈 Calling Circles uva247
- 算法竞赛入门经典第二版第一章语言篇
- 算法竞赛入门经典 第二版 习题4-8 特别困的学生 Extraordinarily Tired Students uva12108
- [置顶] 【清单】 ---算法竞赛入门经典第二版 【例题+习题】【已搬家,不再更新..】
- 算法竞赛入门经典 第二版 习题5-2 Ducci序列 Ducci Sequence uva1594
- 刘汝佳p39,3-2(开灯问题)算法竞赛入门经典第二版
- 算法竞赛入门经典第二版 2-5 decimal
- 刘汝佳p35,2-5(分数化小数)算法竞赛入门经典第二版
- 排列 permutation 算法竞赛入门经典第二版 习题2-6
- 算法竞赛入门经典 第二版 习题6-2 S树 S-Trees uva712
- 算法竞赛入门经典第二版 第二章