set应用 UVa136

 1 #include <iostream>
 2 #include <set>
 3
 4 using namespace std;
 5
 6 set<long long> arr;
 7
 8 int main()
 9 {
10     int i=1;
11     arr.insert(1);
12     long long s;
13     for(;i<=1500;i++)
14     {
15         s=*arr.begin();
16         arr.insert(s*2);
17         arr.insert(s*3);
18         arr.insert(s*5);
19         arr.erase(arr.begin());
20     }
21     cout<<s<<endl;
22     return 0;
23 }

时间: 2024-10-05 16:12:03

set应用 UVa136的相关文章

UVA136 Ugly Numbers

问题链接:UVA136 Ugly Numbers.基础级练习题,用C++语言编写程序. 题意简述:不能被2.3和5以外的素数整除的数称为丑数,找出第1500个丑数. 问题分析:换句话说,丑数的因子只能是2.3和5.1是丑数,对于x,若x是丑数则2x.3x和5x是丑数.利用已知的丑数,从小到不断生成丑数就可以了. 程序中,使用一个STL的容器set来存放丑数.集合具有去重复,自动排序的功能,对于解决本问题是方便的. AC的C++语言程序如下: /* UVA136 Ugly Numbers */ #

丑数 uva-136 丑数

代码如下: /*丑数是指不能被2.3.5以外的其他素数整除的数,把丑数从小到大排列起来,结果如下: 1,2,3,4,5,6,8,9,10,12,15... 求出第1500个丑数. */ #include<iostream> #include<vector> #include<queue> #include<set> using namespace std; typedef long long LL; int su[3]={2,3,5}; int main()

UVa136 Ugly Numbers (STL)

链接:http://acm.hust.edu.cn/vjudge/problem/19437分析:priority_queue的应用.丑数指不能被2,3,5以外的其它素数整除的数,最小的丑数是1(1不是素数),然后对于每个丑数x,2x,3x,5x也是丑数,所以就从小到大生成每个丑数保存在优先队列里,每次取队列中最小的丑数扩展,注意生成新的丑数时还需判断之前是否已经生成过,这里用set就可以保存生成过的所有丑数. 1 #include <iostream> 2 #include <queu

uva136(优先队列)

题意: 不能被2,3,5以外的素数整除的数,称为丑数:找出第1500个丑数: 思路: 用优先队列和map判重: 如果x是丑数,则2x,3x,5x都是丑数: 不停的放出优先队列: 并取出队头(最小的数)x: 要判断这个数是否已经访问过: 找到第1500个输出: #include<cstdio> #include<cstring> #include<queue> #include<vector> #include<map> #define ll lo

UVA136 求第1500个丑数

枚举大范围数据..暴力检查题目条件 #include <iostream> #include <cstdio> #include <vector> #include <algorithm> #include <map> using namespace std; vector<int> Prime; typedef long long ll; bool isPrime(ll x){ ll i; if(x==1) return false

【优先队列基础练习】POJ1338 Uva136 - Ugly Numbers题解

昨天夜里学了栈.队列和优先队列,栈还有的地方不大懂,队列基本可以,优先队列很高兴.本想今天上午继续弄这个,但是跟着李晨他们一块听了清华交院罗雨屏老师讲的计算几何= =虽然以我的水平听计算几何有点早,但至少是听懂了很多,感觉很高兴:十点多就没有再听,毕竟之后越来越深亚历山大.于是就来写一下丑数的题解. 题目:除2,3,5外不能被其他素数整除的数为丑数,求第1500个丑数(Uva版),求第n(n<=1500)个丑数(POJ版) 思路:第一个是1,放入升序优先队列(小的先出),之后每次出队第一个元素,

丑数(UVa136)

题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=835&page=show_problem&problem=72 C++11代码如下: 1 #include<iostream> 2 #include<vector> 3 #include<set> 4 #include<queue> 5 using na

Uva136

Ugly Numbers UVA - 136 Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...shows the first 11 ugly numbers. By convention, 1 is included. Write a program to find and print the 1500’th u

queue 优先队列

eg:uva136 题意 丑数是指不能被2 ,3 ,5 以外素数整除的数,把丑数从小到大排列如下: 1 , 2 ,3 ,5 ,6 ... 求第1500个丑数: 分析: 最小的丑数为1,让他进入优先队列,then  2x,3x,5x  这些都是丑数,用优先队列保存一下,然后在从队列出来,在循环. 注意:不要把已生成的丑数多次进入优先队列.可以用set保存判断就好了. 1 #include<iostream> 2 #include<vector> 3 #include<queue