UVA - 136 Ugly Numbers set+优先队列
2015-03-31 20:24
134 查看
题目大意:丑数的含义是:不能被2,3,5以外的素数整出,现在要求你输出第1500个丑数
解题思路:有优先队列存放丑数,每次取出一个丑数,依次乘上2,3,5,因为是丑数,所以乘上了2,3,5后,依然是丑数,因为它的因子都是都2,3,5组成的.然后再用set判重
解题思路:有优先队列存放丑数,每次取出一个丑数,依次乘上2,3,5,因为是丑数,所以乘上了2,3,5后,依然是丑数,因为它的因子都是都2,3,5组成的.然后再用set判重
[code]#include<cstdio> #include<queue> #include<set> #include<vector> using namespace std; set<long long> s; priority_queue<long long, vector<long long>, greater<long long> > q; long long mul[3] = {2,3,5}; int main() { q.push(1); s.insert(1); int cnt = 0; while(1) { long long tmp = q.top(); q.pop(); cnt++; if(cnt == 1500) { printf("The 1500'th ugly number is %lld.\n", tmp); break; } for(int i = 0; i < 3; i++) { long long t = tmp * mul[i]; if(!s.count(t)) { s.insert(t); q.push(t); } } } return 0; }
相关文章推荐
- UVA 136 丑数
- 《算法竞赛入门经典2ndEdition 》例题5-7 丑数(Ugly Numbers, Uva136)
- UVA 136 Ugly Numbers
- 丑数 uva-136 丑数
- uva 136 120页
- UVA - 136 Ugly Numbers
- UVa 136 - Ugly Numbers
- UVa - 136 - Ugly Numbers(STL - 优先队列priority_queue)
- UVa136 priority_queue优先队列
- UVa 136 丑数
- UVA 136 & POJ1338 Ugly Numbers
- UVA 136(p120)----Ugly Numbers
- Uva 136 Ugly Numbers 优先队列
- 算典05_例题_07_UVA-136
- UVA 136 Ugly Number(优先队列)
- UVa 136 - Ugly Numbers
- UVA136 求第1500个丑数
- uva 136 丑数
- 丑数(Uva 136)
- uva 136 丑数 STL