`
Simone_chou
  • 浏览: 192650 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Humble Numbers(技巧)

 
阅读更多
Humble Numbers

For a given set of K prime numbers S = {p1, p2, ..., pK}, consider the set of all numbers whose prime factors are a subset of S. This set contains, for example, p1, p1p2, p1p1, and p1p2p3 (among others). This is the set of `humble numbers' for the input set S. Note: The number 1 is explicitly declared not to be a humble number.

Your job is to find the Nth humble number for a given set S. Long integers (signed 32-bit) will be adequate for all solutions.

PROGRAM NAME: humble

INPUT FORMAT

Line 1: Two space separated integers: K and N, 1 <= K <=100 and 1 <= N <= 100,000.
Line 2: K space separated positive integers that comprise the set S.

SAMPLE INPUT (file humble.in)

4 19
2 3 5 7

OUTPUT FORMAT

The Nth humble number from set S printed alone on a line.

SAMPLE OUTPUT (file humble.out)

27

 

       题意:

       给出 N(1 ~ 100)个素数 和 K (1 ~ 100000)。输出第 K 个数,这个数的质因子只能由这 N 个里面的数组成。规定 1 不算入其中。

 

       思路:

       技巧。与第二次个人排位赛素数筛选那道题类似,为了方便计算,所以把 1 也算入其中。用数组 hum 记录前 100000 个数( hum 数组绝对是从小到大排序的 ),更新的时候只需要更新到 K 为止。对于每一个素数 num[ i ] 对应都有一个下标值 fir [ i ]。当需要更新第 j 个 hum 时,每个一个素数都要找到第一个 fir [ i ] 满足 num [ i ] * hum [ fir [ i ] ] > hum [ j - 1 ] ,同时比较取得每个素数 num [ i ] * hum [ fir [ i ] ] 的最小值,这个最小值即为 hum [ j ] 的值。如此更新下去,最后输出 hum [ k ] 即可。

 

        AC:

/*
TASK:humble
LANG:C++
ID:sum-g1
*/

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

typedef long long ll;

const ll INF = 999999999999;

ll num[105], fir[105];
ll hum[100005];

int main() {
        freopen("humble.in", "r", stdin);
        freopen("humble.out", "w", stdout);

        int n, k;
        scanf("%d%d", &n, &k);

        for (int i = 1; i <= n; ++i) {
                scanf("%lld", &num[i]);
                fir[i] = 0;
        }

        hum[0] = 1;
        for (int i = 1; i <= k; ++i) {
                ll Min = INF;

                for (int j = 1; j <= n; ++j) {
                        while (num[j] * hum[ fir[j] ] <= hum[i - 1]) ++fir[j];
                        if (num[j] * hum[ fir[j] ] < Min) 
                            Min = num[j] * hum[ fir[j] ];
                }

                hum[i] = Min;
        }

        printf("%lld\n", hum[k]);

        return 0;
}

 

 

分享到:
评论

相关推荐

    Humble Numbers 简单DP

    【标题解析】:“Humble Numbers 简单DP”这个标题指的是一个与“Humble Numbers”相关的编程问题,它可以通过动态规划(Dynamic Programming, DP)方法来解决。Humble Numbers,也称为卑微数,是一类特殊的自然数,...

    ros humble的key

    ros humble的key

    usaco chap3题解

    - BFS在此处的作用是扩展已有的Humble Numbers序列,而Treap用于快速查找、插入新生成的Humble Numbers,并判断是否存在重复。 - 此方法的优势在于能够显著减少不必要的重复检查,提高效率。 - **方法三**: - ...

    The Humble Programmer

    《The Humble Programmer》是荷兰计算机科学家艾兹赫尔·戴克斯特拉(Edsger W. Dijkstra)在1972年美国计算机协会图灵奖颁奖典礼上所做的演讲。在演讲中,戴克斯特拉回顾了自己的编程生涯,并探讨了编程作为一种...

    humble-video:不起眼的视频

    如果使用Maven,则将Humble部署到Maven中央存储库。 要将其包含在您的项目中(请注意:这将包括所有操作系统的工件),请将其添加到pom.xml中: ... ... &lt; groupId&gt;io.humble &lt; artifactId&gt;humble-video-...

    The humble programmer

    ### 《谦卑的程序员》—— Edsger W. Dijkstra 的 1972 图灵奖演讲 #### 概述 《谦卑的程序员》是计算机科学领域著名人物 Edsger W....该文首次发表在《ACM 通讯》上,后被广泛引用和传播,对软件工程、编程哲学以及...

    PyPI 官网下载 | humble-0.1.2.tar.gz

    这个资源,"humble-0.1.2.tar.gz",是PyPI上一个名为"humble"的Python库的版本0.1.2的压缩包文件。 在Python开发中,使用第三方库可以极大地提高开发效率,而PyPI正是这样一个平台,开发者可以将自己编写的Python...

    com.humble.SlayTheSpire.apk

    com.humble.SlayTheSpire.apk

    ros2-humble串口通信serial库

    ros2-humble串口通信serial库

    A_humble_SublimeText_package_for

    A_humble_SublimeText_package_for_exporting_highlig_SublimeHighlight

    humble-steam-key-redeemer:Python脚本提取所有Humble Bundle密钥并自动在Steam上赎回它们

    Python脚本提取所有Humble键并自动在Steam上赎回它们。 这主要是设计成一种“设置后忘”的工具,可以最大程度地成功将密钥输入Steam,从而确保不会赎回Steam游戏。 该脚本将同时登录Humble和Steam,从而使整个过程...

    humble:Humble的主要存储库。 与任何特定子软件包无关的问题和新功能请求都在这里

    Humble是一组松散耦合的工具,旨在使用go和构建客户端和混合Web应用程序。 Humble专为编写前端代码而设计,完全与后端无关。 您可以将Humble与以任何语言编写的任何后端服务器结合使用。 如果您确实选择同时编写...

    Humble-Key-Restriction::cooking:Humble Bundle 锁区 Key 查看脚本

    Humble Key Restriction 描述 查看 Humble Bundle Key 的激活激活限制插件 它能帮你在 Humble 的 Download 界面显示 Key 的激活限制信息。 安装 安装 (推荐)、 或者其它用户脚本管理工具 安装脚本 就可以用啦 XD ...

    micro-ros-setup-humble.zip

    micro-ros-setup-humble.zip

    humble-book-bundle:我从Humble商店购买的所有电子书

    如果您有兴趣签出最新的书籍捆绑包(如果有),只需单击Humble Bundle主页顶部的“书籍捆绑包”标签。 例如常规捆绑包,将有多个层次。 顶层将显示可用于“按需支付”的内容。 下面是“超越平均水平”(绿色)层,...

    Atom-atom-humble-colors-syntax,Atom的语法主题,外观简洁明了。.zip

    "Atom-atom-humble-colors-syntax.zip" 文件是一个专门为Atom设计的语法主题,名为"Humble Colors Syntax"。 语法主题是编辑器中的一个重要组成部分,它决定了代码在编辑器中的颜色显示方式。"Humble Colors Syntax...

    Humble_Pal:Humble Pal 通过自动化和跟踪扩展了 Humble Bundle 的功能

    《Humble_Pal:自动化与跟踪,提升Humble Bundle体验》 Humble_Pal是一款针对Humble Bundle平台的增强工具,旨在通过自动化和跟踪技术,为用户带来更加便捷和丰富的使用体验。Humble Bundle,一个知名的数字商品...

    humblebundle-downloader:下载您的Humble Bundle库

    从Humble Bundle库中下载所有内容! 第一次运行可能需要一段时间,因为它将下载所有内容。 之后,它将仅下载已更新或丢失的内容。 产品特点 支持Humble Trove (-- --trove标志) 每次运行时从您的Humble Bundle...

    USACO 3.1 humble 解答

    做的很辛苦, 里面附有注释,大家支持一下吧...

    HUMBLE BOOK BUNDLE: Unity进阶书籍慈善包

    从HUMBLE买的的unity开发进阶书籍慈善包,包含untiy性能优化,shader,C#,项目实例,企业增强现实项目,Unity认证程序员:考试指南等等。进阶高级开发必备书籍(但是注意一点,是全英文)

Global site tag (gtag.js) - Google Analytics