UVa136 Ugly Numbers (priority_queue)
来源:互联网 发布:360数据恢复大师免费版 编辑:程序博客网 时间:2024/05/08 14:40
priority_queue的个人博客常用用法:
typedef long long LL;
priority_queue<LL,vector<LL>,greater<LL> >pq; //第一个参数是队列的类型,第二个参数是该队列的底层实现,第三个就是优先级。
priority_queue<LL,vector<LL>,less<LL> >pq; // greater优先级的队列是先出最小值,less优先级的队列是先出最大值。
思路:先由最小的丑数,分别乘2,3,5,然后将新生成的丑数存入队列,然后再从队列中找出最小数重复上述步骤(ps:需要判断一个丑数是否已经生成过),重复1500次,然后取出队列中最小值,即第1500个丑数。
代码如下:
#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 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;
}
文/洪学林个人博客
来历:洪学林个人博客模板,转发请保存出处和连接!
本文链接:http://www.hongxuelin.com/?p=126
- UVa136 Ugly Numbers (priority_queue)
- 例题5-7 UVa136 Ugly Numbers(STL:priority_queue)
- UVA136-Ugly Numbers
- UVA136 Ugly Numbers
- UVA136--Ugly Numbers
- STL-UVA136-Ugly Numbers
- uva136 Ugly numbers
- Uva136——Ugly Numbers
- UVA136 Ugly Numbers(优先队列应用)
- UVa136(Ugly Numbers)优先队列
- UVA136 - Ugly Numbers(丑数)
- 【日常学习】【优先队列】POJ1338 Uva136 - Ugly Numbers题解
- Uva136 Ugly Numbers 【优先队列】【例题5-7】
- UVa136 Ugly Numbers(优先队列+set判重)
- Ugly Numbers UVA 136 priority_queue+set
- UVa 136 Ugly Numbers 【STL】【priority_queue】
- UVa136 priority_queue优先队列
- 《算法竞赛入门经典2ndEdition 》例题5-7 丑数(Ugly Numbers, Uva136)
- MFC获取磁盘信息
- Android省市区三级联动滚轮选择(真实项目中提取出来的组件)
- CALayer的用法
- plsql连接错误提示ora-12514
- VS2010 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 嵌入清单
- UVa136 Ugly Numbers (priority_queue)
- Android组件(Activity)
- Xcode中经常出现的编译错误 linker command failed with exit code...
- 移动APP切图术语解读:什么是@1x @2x和@3x【转自25学堂】
- 【bzoj1001】[BeiJing2006]狼抓兔子
- SQL的 case when语句嵌套使用
- windows server 2008 ado 分页补丁
- 图片不能上传js不管用
- Core Animation - CATransformLayer的运用