zoukankan      html  css  js  c++  java
  • 洛谷——P1748 H数

    P1748 H数

    题目描述

    所谓H数,是指只含有2,3,5,7这些质因数的数,如630是H数,而22不是。现在要求输出第n个H数,为了方便起见将H[1]定为1。已知n不超过10000,最后数据在int64范围之内。

    维护一个单调队列或是一个set集合(自带去重)

    //维护四个指针,每次取最小值
    #include<iostream> #include<cstdio> #include<cmath> #include<set> #define N 10005 using namespace std; int n; long long h[N],a=1,b=1,c=1,d=1; int main() { scanf("%d",&n); h[1]=1; for(int i=2;i<=n;i++){ h[i]=h[a]*2; if(h[i]>h[b]*3) h[i]=h[b]*3; if(h[i]>h[c]*5) h[i]=h[c]*5; if(h[i]>h[d]*7) h[i]=h[d]*7; if(h[i]==h[a]*2) ++a; if(h[i]==h[b]*3) ++b; if(h[i]==h[c]*5) ++c; if(h[i]==h[d]*7) ++d; } printf("%lld ",h[n]); return 0; }
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<set>
    
    using namespace std;
    
    int n;
    set<long long>S;
    int main()
    {
        scanf("%d",&n);
        S.insert(1);
        set<long long>:: iterator it=S.begin();
        for(int i=1;i<n;i++){
            long long x=*it;
            S.insert(x*2);
            S.insert(x*3);
            S.insert(x*5);
            S.insert(x*7);
            it++;
        }
        if(!n) printf("0
    ");
        else printf("%lld
    ",*it);
        
        return 0;
    }
  • 相关阅读:
    Redis主从复制及主从复制的注意事项
    Redis哨兵(Sentinel)
    Redis慢查询日志(slowlog)
    Memcached缓存雪崩现象
    PHP添加Memcached扩展
    Redis节省空间
    Memcached遇到的问题及解决办法
    C++ explicit关键字学习
    力扣:排序之topK||Kth元素的问题
    软聚类
  • 原文地址:https://www.cnblogs.com/song-/p/9722548.html
Copyright © 2011-2022 走看看