zoukankan      html  css  js  c++  java
  • hdu 1058 Humble Numbers

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1058 
    优先队列的应用,如下:

     1 #include<functional>
     2 #include<algorithm>
     3 #include<iostream>
     4 #include<cstdlib>
     5 #include<cstdio>
     6 #include<vector>
     7 #include<queue>
     8 using std::vector;
     9 using std::greater;
    10 using std::priority_queue;
    11 typedef unsigned long long ull;
    12 const int Max_N = 5843;
    13 ull ans[Max_N];
    14 void init() {
    15     int arr[5] = { 2, 3, 5, 7 };
    16     priority_queue<ull, vector<ull>, greater<ull> > que;
    17     que.push(1);
    18     for (int i = 1; i <= Max_N;) {
    19         ull t = que.top();
    20         que.pop(), ans[i] = t;
    21         if (ans[i] == ans[i - 1]) {
    22             continue;
    23         } else {
    24             i++;
    25         }
    26         for (int j = 0; j < 4; j++) que.push((ull)(t * arr[j]));
    27     }
    28 }
    29 int main(){
    30     init();
    31     int n;
    32     while (~scanf("%d", &n) && n) {
    33         if (n % 10 == 1 && n % 100 != 11) 
    34             printf("The %dst humble number is %lld.
    ", n, ans[n]);
    35         else if (n % 10 == 2 && n % 100 != 12) 
    36             printf("The %dnd humble number is %lld.
    ", n, ans[n]);
    37         else if (n % 10 == 3 && n % 100 != 13) 
    38             printf("The %drd humble number is %lld.
    ", n, ans[n]);
    39         else printf("The %dth humble number is %lld.
    ", n, ans[n]);
    40     }
    41     return 0;
    42 }
    View Code
    By: GadyPu 博客地址:http://www.cnblogs.com/GadyPu/ 转载请说明
  • 相关阅读:
    substr函数
    Oracle 日期处理
    translate函数使用
    nvl函数
    random随机函数
    case语句
    列的拼接
    并行HASH JOIN小表广播问题
    WITH AS 优化逻辑读
    【hihoCoder挑战赛28 A】异或排序
  • 原文地址:https://www.cnblogs.com/GadyPu/p/4510333.html
Copyright © 2011-2022 走看看