1246 丑数

USACO

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond

题解
 查看运行结果

题目描述 Description

对于一给定的素数集合 S = {p1, p2, ..., pK}, 
来考虑那些质因数全部属于S 的数的集合。这个集合包括,p1, p1p2, p1p1, 和 p1p2p3 (还有其它)。这是个对于一个输入的S的丑数集合。
注意:我们不认为1 是一个丑数。
你的工作是对于输入的集合S去寻找集合中的第N个丑数。longint(signed 32-bit)对于程序是足够的。

输入描述 Input Description

第 1 行: 二个被空间分开的整数:K 和 N , 1<= K<=100 , 1<= N<=100,000. 
第 2 行: K 个被空间分开的整数:集合S的元素

输出描述 Output Description

单独的一行,写上对于输入的S的第N个丑数。

样例输入 Sample Input

4 19
2 3 5 7

样例输出 Sample Output

27

数据范围及提示 Data Size & Hint

思路:
刚开始想用堆做结果最后一个点TLE
现在看了别人的题解才明白还有动态规划
认定1是第一个丑数(虽然它不是)
然后我们从1开始往后推
用一个now数组来记录k个质数的当前对应的dis下标
然后我们每次更新一个推出的属于s的数
这个s一定是当前最小的
因为它由k个dis取出的最小
好吧,我也说不清,看代码
来,上代码:

#include <cstdio>#define INF 0x7fffffffusing namespace std;int n,k,ai[101],now[101];long long int dis[100001];int main()
{scanf("%d%d",&k,&n);for(int i=1;i<=k;i++) scanf("%d",&ai[i]),now[i]=1;dis[1]=1;for(int i=2;i<=n+1;i++){dis[i]=INF;for(int j=1;j<=k;j++){while(ai[j]*dis[now[j]]<=dis[i-1]) now[j]++;if(ai[j]*dis[now[j]]<dis[i]) dis[i]=ai[j]*dis[now[j]];}}printf("%lld\n",dis[n+1]);return 0;
}

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6246408.html

AC日记——丑数 codevs 1246相关推荐

  1. AC日记——约瑟夫问题 codevs 1282

    1282 约瑟夫问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解  查看运行结果 题目描述 Description 有编号从1到N的N个小朋友在玩 ...

  2. 洛谷P1246C语言,codevs1246 丑数

    题目描述 Description 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2 ...

  3. 比紫书优化,14行代码AC——例题 5-7 丑数(Ugly Numbers,UVa 136)——解题报告

    题意: 丑数是一些因子只有2,3,5的数.数列1,2,3,4,5,6,8,9,10,12,15--写出了从小到大的前11个丑数,1属于丑数.现在请你编写程序,找出第1500个丑数是什么. 没有输入 输 ...

  4. 程序员面试题精选100题(37)-寻找丑数[算法]

    题目:我们把只包含因子 2. 3和 5的数称作丑数(Ugly Number).例如 6. 8都是丑数,但 14不是,因为它包含因子 7.习惯上我们把 1当做是第一个丑数.求按从小到大的顺序的第 150 ...

  5. LeetCode 1201. 丑数 III(最小公倍数+二分查找)

    1. 题目 请你帮忙设计一个程序,用来找出第 n 个丑数. 丑数是可以被 a 或 b 或 c 整除的 正整数. 示例 1: 输入:n = 3, a = 2, b = 3, c = 5 输出:4 解释: ...

  6. 三个数互质 java_LeetCode 5198. 丑数 III(Java)容斥原理和二分查找

    请你帮忙设计一个程序,用来找出第 n 个丑数. 丑数是可以被 a 或 b 或 c 整除的 正整数. 示例 1: 输入:n = 3, a = 2, b = 3, c = 5 输出:4 解释:丑数序列为 ...

  7. 剑指offer——面试题34:丑数

    剑指offer--面试题34:丑数 Solution1: 最容易想到的,也是最不可能AC的 class Solution {public:int GetUglyNumber_Solution(int ...

  8. LeetCode 264. 丑数 II--动态规划

    丑数 II 编写一个程序,找出第 n 个丑数. 丑数就是质因数只包含 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 1 ...

  9. php实现丑数,曾经绊倒我的 “超级丑数”

    点击 蓝色字体 关注,欢迎星标此号 既然来了,何不认真读完此文呢?每天多花20分钟,做一些别人不愿做的事,坚持下去,会有一个结果的.废话少说,通过此文,你将会学到如下知识: 学会列表和排序很难求解的场 ...

最新文章

  1. Web服务器和应用程序服务器有什么区别
  2. 13.7 线程生命周期状态图、线程常用的方法。
  3. azure mysql 配置,微软Azure云MySQL in-app 的配置,简化PHP内容管理系统配置
  4. 统计学习方法第十一章作业:随机条件场—概率计算问题、IIS/GD学习算法、维特比预测算法 代码实现
  5. mysql超级_Mysql 超级快速入门
  6. 集群管理工具KafkaAdminClient——改造
  7. php服务docker化,docker化你的PHP应用环境Nginx PHP-FPM
  8. ORACLE会话以及SQL执行信息查询
  9. 2019最佳工作、平均年薪达百万!想入行,先看这10本书
  10. docker之使用supervisor管理多个进程
  11. ubuntu 忘记root密码了不用怕,看这里
  12. selenium学习过程中遇到的问题
  13. POJ-1001 求高精度幂
  14. Go Slice 高级实践
  15. linux安装软件常用命令
  16. Python函数知识点(详解)
  17. 计算机音乐有哪些优势,谈谈用电脑听无损音乐的好处
  18. Visual Studio更换默认浏览器
  19. 如何让IE11自动下载安装ActiveX插件并使用网页VLC播放视频
  20. 熵值法的Python实现

热门文章

  1. Java虚拟机对类加载的处理机制
  2. 小块头大性能才能得到用户的青睐
  3. python3实现下载ftp上的文件
  4. dede扩展数据类型_数据类型,扩展
  5. 浅析java中的死锁_Java学习笔记五十五(死锁问题)
  6. 神经网络预测模型算法_MATLAB Elman神经网络的数据预测—电力负荷预测模型研究...
  7. SQL Server 2014图文安装教程
  8. h3c wa2620胖ap设置_AP考试|错过报名不用慌,香港考区目前仍然可以报名!
  9. JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
  10. c 创建mysql实体模型_EntityFrameworkCore 根据实体类自动创建数据库