UVA136-Ugly Numbers
来源:互联网 发布:手机淘宝评论在哪里看 编辑:程序博客网 时间:2024/06/05 03:35
一道很经典的题,充分的利用了优先队列的各种性质,比起来用两个set,优先队列更清晰!
用set
#include<stdio.h>#include<set>#include<vector>#include<iostream>#include<queue>using namespace std;#define ll long longll a[3]={2,3,5};int main(){ set<ll>num; set<ll>::iterator it; set<ll>s; num.insert(1); s.insert(1); for(int i=1;;i++){ it=num.begin(); ll x=*it; num.erase(x); if(i==1500){ cout<<"The 1500'th ugly number is "<<x<<".\n"; break; } for(int j=0;j<3;j++){ ll x2=x*a[j]; if(!s.count(x2)) {s.insert(x2);num.insert(x2); } } }}
一个set用来存放数字,一个用来反复的取和拿。
优先队列
#include<stdio.h>#include<set>#include<vector>#include<iostream>#include<queue>using namespace std;#define ll long longll a[3]={2,3,5};int main(){ priority_queue<ll,vector<ll>,greater<ll> > num; set<ll>s; num.push(1); s.insert(1); for(int i=1;;i++){ ll x=num.top();num.pop(); if(i==1500){ cout<<"The 1500'th ugly number is "<<x<<".\n"; break; } for(int j=0;j<3;j++){ ll x2=x*a[j]; if(!s.count(x2)) {s.insert(x2);num.push(x2); } } }}
简单明了的push,pop。
0 0
- UVA136-Ugly Numbers
- UVa136 Ugly Numbers (priority_queue)
- 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题解
- 例题5-7 UVa136 Ugly Numbers(STL:priority_queue)
- Uva136 Ugly Numbers 【优先队列】【例题5-7】
- UVa136 Ugly Numbers(优先队列+set判重)
- 《算法竞赛入门经典2ndEdition 》例题5-7 丑数(Ugly Numbers, Uva136)
- Uva136-Ugly Numbers-丑数-set集合和优先队列的运用
- Ugly Numbers
- Ugly numbers
- 表单开发(一):获取文本框和密码框数据 用户登录网页
- 监听ContentProvider中数据的变化
- oracle启动顺序
- Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version 错误解决
- hadoop-common源码分析之-WritableUtils
- UVA136-Ugly Numbers
- Java多态中的注意事项
- 南阳oj 士兵杀敌(二) 题目116 NYOJ 数据结构
- 优先队列用法
- ZOJ - 3124 Celebrity jeopardy
- HDU 3033 I love sneakers!(分组背包变形)
- 文章标题
- velocity例子
- 堆分配存储的串的表示和实现