HDU 1058

原创 2018年04月16日 16:05:25

我用优先级队列做的,需要打表不然会超时。

注意:1200也是rd所以判断条件应该为n%100!=…

/*Sample Input
1
2
3
4
11
12
13
21
22
23
100
1000
5842
0
Sample Output
The 1st humble number is 1.
The 2nd humble number is 2.
The 3rd humble number is 3.
The 4th humble number is 4.
The 11th humble number is 12.
The 12th humble number is 14.
The 13th humble number is 15.
The 21st humble number is 28.
The 22nd humble number is 30.
The 23rd humble number is 32.
The 100th humble number is 450.
The 1000th humble number is 385875.
The 5842nd humble number is 2000000000.*/
#include<iostream>
#include<queue>
#include<set>
using namespace std;
typedef long long ll;
int a[]= {2,3,5,7};
    ll h[6000];
int main()
{


    int n;

    set<ll> s;
    priority_queue<ll,vector<ll>,greater<ll> > pq;
    pq.push(1);
    s.insert(1);
    ll t;
    for(int i=1;i<=5842; i++)
    {
        t=pq.top();
        h[i]=t;
        pq.pop();
        for(int j=0; j<4; j++)
        {
            if(!s.count(t*a[j]))
            {
                s.insert(t*a[j]);
                pq.push(t*a[j]);
            }
        }
    }
    while(cin>>n&&n)
    {
        if(n%10==2&&n%100!=12)
        {
            cout<<"The "<<n<<"nd"<<" humble number is "<<h[n]<<"."<<endl;
        }
        else if(n%10==1&&n%100!=11)
        {
            cout<<"The "<<n<<"st"<<" humble number is "<<h[n]<<"."<<endl;
        }
        else if(n%10==3&&n%100!=13)
        {
            cout<<"The "<<n<<"rd"<<" humble number is "<<h[n]<<"."<<endl;
        }
        else
        {
            cout<<"The "<<n<<"th"<<" humble number is "<<h[n]<<"."<<endl;
        }
    }
return 0;
}

HDU 1058 Humble Numbers(打表+暴力)

Humble Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016-04-17 18:24:11
  • 403

hdu1058 Humble Numbers--DP

原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1058 一:原题内容 Problem Description A number whose ...
  • LaoJiu_
  • LaoJiu_
  • 2016-03-23 21:19:40
  • 637

Hdu oj 1058 Humble Numbers

题目:点击打开链接 代码: #include #define min(a,b) ((a)
  • zm_11
  • zm_11
  • 2015-08-22 23:52:06
  • 289

【HDU-1058】Humble Numbers 丑数

Problem DescriptionA number whose only prime factors are 2,3,5 or 7 is called a humble number. The s...
  • iceiceicpc
  • iceiceicpc
  • 2016-03-07 20:13:27
  • 497

HDU-1058-Humble Numbers(暴力打表)

Humble NumbersTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T...
  • qq_32680617
  • qq_32680617
  • 2016-10-15 16:09:21
  • 431

HDU 丑数 - 1058 Humble Numbers

这一题是讲了一个名叫丑数的概念(为啥叫丑数,,)。 概念:因子中仅仅包含2、3、5,7的数,称为丑数。但其实我百度网上时,发现正常的丑数应该是因子中仅仅包含2、3、5,不过基本都一样。 我们可...
  • u010006643
  • u010006643
  • 2015-06-10 20:06:12
  • 817

hdu 1058 hdoj 1058

Humble Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...
  • sonfree
  • sonfree
  • 2011-12-09 09:57:21
  • 96

系统错误1058的解决办法

今天打算写个关闭windows系统服务的程序,发现了个错误错误描述:无法启动Themes服务错误详细步骤:       1.我以前禁用了服务themes       2.现在手动修改注册表HKEY_L...
  • greenerycn
  • greenerycn
  • 2007-09-28 16:55:00
  • 31314

杭电1058——Humble Numbers(丑数问题)

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1058任何一个数分解到最后都是由一些质数或者1相乘。基于此,题目中将一个数的质数因子在2,3,5,7之中...
  • qianchangdiyin
  • qianchangdiyin
  • 2016-03-03 12:56:19
  • 2064

HDU1058(还是简单dp)

昨天一个数据挖掘的公司跟我说我面试通过了,问我去不去,我在犹豫,因为我在等百度的面试。我在想,如果我说去了,那么意味着我未来的第一份工作极度有可能是数据挖掘,虽然数据挖掘是未来的正道~(起码比研发更吃...
  • u011044759
  • u011044759
  • 2014-06-04 08:43:56
  • 1302
收藏助手
不良信息举报
您举报文章:HDU 1058
举报原因:
原因补充:

(最多只允许输入30个字)