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”相关的编程问题,它可以通过动态规划(Dynamic Programming, DP)方法来解决。Humble Numbers,也称为卑微数,是一类特殊的自然数,...
ros humble的key
- BFS在此处的作用是扩展已有的Humble Numbers序列,而Treap用于快速查找、插入新生成的Humble Numbers,并判断是否存在重复。 - 此方法的优势在于能够显著减少不必要的重复检查,提高效率。 - **方法三**: - ...
《The Humble Programmer》是荷兰计算机科学家艾兹赫尔·戴克斯特拉(Edsger W. Dijkstra)在1972年美国计算机协会图灵奖颁奖典礼上所做的演讲。在演讲中,戴克斯特拉回顾了自己的编程生涯,并探讨了编程作为一种...
如果使用Maven,则将Humble部署到Maven中央存储库。 要将其包含在您的项目中(请注意:这将包括所有操作系统的工件),请将其添加到pom.xml中: ... ... < groupId>io.humble < artifactId>humble-video-...
### 《谦卑的程序员》—— Edsger W. Dijkstra 的 1972 图灵奖演讲 #### 概述 《谦卑的程序员》是计算机科学领域著名人物 Edsger W....该文首次发表在《ACM 通讯》上,后被广泛引用和传播,对软件工程、编程哲学以及...
这个资源,"humble-0.1.2.tar.gz",是PyPI上一个名为"humble"的Python库的版本0.1.2的压缩包文件。 在Python开发中,使用第三方库可以极大地提高开发效率,而PyPI正是这样一个平台,开发者可以将自己编写的Python...
com.humble.SlayTheSpire.apk
ros2-humble串口通信serial库
A_humble_SublimeText_package_for_exporting_highlig_SublimeHighlight
Python脚本提取所有Humble键并自动在Steam上赎回它们。 这主要是设计成一种“设置后忘”的工具,可以最大程度地成功将密钥输入Steam,从而确保不会赎回Steam游戏。 该脚本将同时登录Humble和Steam,从而使整个过程...
Humble是一组松散耦合的工具,旨在使用go和构建客户端和混合Web应用程序。 Humble专为编写前端代码而设计,完全与后端无关。 您可以将Humble与以任何语言编写的任何后端服务器结合使用。 如果您确实选择同时编写...
Humble Key Restriction 描述 查看 Humble Bundle Key 的激活激活限制插件 它能帮你在 Humble 的 Download 界面显示 Key 的激活限制信息。 安装 安装 (推荐)、 或者其它用户脚本管理工具 安装脚本 就可以用啦 XD ...
micro-ros-setup-humble.zip
如果您有兴趣签出最新的书籍捆绑包(如果有),只需单击Humble Bundle主页顶部的“书籍捆绑包”标签。 例如常规捆绑包,将有多个层次。 顶层将显示可用于“按需支付”的内容。 下面是“超越平均水平”(绿色)层,...
"Atom-atom-humble-colors-syntax.zip" 文件是一个专门为Atom设计的语法主题,名为"Humble Colors Syntax"。 语法主题是编辑器中的一个重要组成部分,它决定了代码在编辑器中的颜色显示方式。"Humble Colors Syntax...
《Humble_Pal:自动化与跟踪,提升Humble Bundle体验》 Humble_Pal是一款针对Humble Bundle平台的增强工具,旨在通过自动化和跟踪技术,为用户带来更加便捷和丰富的使用体验。Humble Bundle,一个知名的数字商品...
从Humble Bundle库中下载所有内容! 第一次运行可能需要一段时间,因为它将下载所有内容。 之后,它将仅下载已更新或丢失的内容。 产品特点 支持Humble Trove (-- --trove标志) 每次运行时从您的Humble Bundle...
做的很辛苦, 里面附有注释,大家支持一下吧...
从HUMBLE买的的unity开发进阶书籍慈善包,包含untiy性能优化,shader,C#,项目实例,企业增强现实项目,Unity认证程序员:考试指南等等。进阶高级开发必备书籍(但是注意一点,是全英文)