uva 136 ——Ugly Numbers
来源:互联网 发布:网络机顶盒看直播 编辑:程序博客网 时间:2024/06/15 14:37
题目链接:点击打开链接
题意:从小到大,不能被(2,3,5)以外的素数整除的丑数,找到第1500个,并输出来。
思路:开始使用优先队列做,用数组标记,但是数组存不下,而后想到用set容器做,不用标记,最后我用了两种方法,队列用map进行标记,过了;
方法:我们都知道合数可以表示成素数连乘的形式, 1单独处理,那么我们就可以用2,3,5,相互连乘构造题目所要求的丑数,但是这些丑数不能漏掉,也必须从小到大排列好,因此我们就可以想到优先队列和set容器。而使用函数或者容器时,不能当容器里面含有1500就停止输出,例如 5^4>2^5,但是我们会先碰到5^4的,这样就是可能会漏掉一些数据,结果是错误的。
优先队列加map
#include <stdio.h>#include <string.h>#include <algorithm>#include <queue>#include <map>typedef long long LL;using namespace std;map<LL ,int>M;int main(){ priority_queue<LL, vector<LL>, greater<LL> >Q;//从小到大排列 //priority_queue<LL>Q; //从大到小排序, Q.push(1); M[1]=1; int cont=0; LL term; while(cont<1500) { term=Q.top(); Q.pop(); cont++; if(M[term*2]==0) { M[term*2]=1; Q.push(term*2); } if(M[term*3]==0) { M[term*3]=1; Q.push(term*3); } if(M[term*5]==0) { Q.push(term*5); M[term*5]=1; } } printf("The 1500'th ugly number is %lld.\n",term); return 0;}
set容器
#include <stdio.h>#include <string.h>#include <algorithm>#include <set>using namespace std;int main(int argc,char* argv[]){ set<long long int>S; S.insert(1); int t=1; set<long long int>::iterator it; it=S.begin(); while(t<1500) { S.insert(*it*2); S.insert(*it*3); S.insert(*it*5); it++; t++; } printf("The 1500'th ugly number is %llu.\n", *it); return 0;}
阅读全文
0 0
- uva 136 ——Ugly Numbers
- UVa 136 - Ugly Numbers
- UVa 136 - Ugly Numbers
- UVa 136 - Ugly Numbers
- UVA - 136 Ugly Numbers
- UVA 136 Ugly Numbers
- Uva - 136 - Ugly Numbers
- UVA 136 Ugly Numbers
- UVA 136 Ugly Numbers
- UVA - 136 Ugly Numbers
- UVA 136 Ugly Numbers
- UVa 136 Ugly Numbers
- UVa 136 Ugly Numbers
- UVA - 136 Ugly Numbers
- Uva 136 - Ugly Numbers
- UVa 136 Ugly Numbers
- UVA-136 Ugly Numbers
- UVA 136 Ugly Numbers
- JavaScript innerHTML
- PID
- linux安装mysql
- Java注解教程及自定义注解
- java实现AES加密解密--数据加解密
- uva 136 ——Ugly Numbers
- Springmvc之applicationContext.xml
- 允许远程用户登录访问mysql的方法
- 2015NOIP普级组第三题--求和(参考洛谷题解)
- VMware虚拟机启动后出现黑屏,不能显示界面,但是在查看->控制台视图下可以看到界面
- 笔记5
- Python 常用第三方库及介绍
- Linux 基础操作(十七)————LVM硬盘管理及扩容
- 【机器学习】李宏毅机器学习2017——(2)线性回归