#HDU 1058 Humble Numbers
来源:互联网 发布:手机延时摄影软件 编辑:程序博客网 时间:2024/06/07 05:37
Humble Numbers
题意: 如果一个数的质因子只有2,3,5,7,那么这个数就叫“丑数”,下现在要求前5842个“丑数”。
分析: 根据质因子分解唯一,我们知道只需要将 1分别乘上2,3,5,7,然后将得到的数在进行这样子的操作,由于原数列是递增排列的,所以可以使用优先队列维护。(在HDU上打表用了97ms,但是Vj上貌似不让交这么长的代码)
代码如下:
#include <algorithm>#include <bitset>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <map>#include <queue>#include <set>#include <stack>#include <string>#include <cctype>#include <fstream>#define INF 0x3f3f3f3f#define TEST cout<<"stop here"<<endl using namespace std;typedef long long ll;const ll mod = 1e9 + 7;ll num[5900];int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0); /* ofstream outfile; outfile.open("data.txt"); ll j=1; outfile<<"{"<<" "; for(ll i=1;i<=2000000000;i++){ if(judge(i)) {outfile<< i << ','<<" ";j++;} if(j==20){outfile<<endl;j=1;} } outfile<<"}"<<endl; outfile.close(); */ ll tmp = 1; priority_queue<ll, vector<ll>, greater<ll> > que; int i = 1; while(i<=5842){ que.push(1); while(!que.empty()){ if(i>5842) break; tmp = que.top(); que.pop(); if(tmp!=num[i-1]){ num[i++] = tmp; que.push(tmp*2); que.push(tmp*3); que.push(tmp*5); que.push(tmp*7); } } } int n; while(cin>>n && n){ if(n%10==1 && n%100 != 11) printf("The %dst humble number is %lld.\n",n,num[n]); else if(n%10==2 && n%100!=12) printf("The %dnd humble number is %lld.\n",n,num[n]); else if(n%10==3 && n%100!=13) printf("The %drd humble number is %lld.\n",n,num[n]); else printf("The %dth humble number is %lld.\n",n,num[n]); } return 0;}
阅读全文
0 0
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 humble numbers
- hdu 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU-1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- Listview中CheckBox全选
- 聊天室
- C#之入门总结_01
- 快选选定复制文档或文档内容
- 自定义view 实现小圆点拖动
- #HDU 1058 Humble Numbers
- docker-machine的安装
- MySql数据库事务的4大特性
- 针对于项目中用到的技术点的归纳{导出excel}
- 【bzoj3926】[Zjoi2015]诸神眷顾的幻想乡
- 我为什么要考研?
- BZOJ 2821 作诗(Poetize) 分块
- 直接插入排序
- 线程控制(二)