这个题是一个动态规划加优化的经典题

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

分类标签 Tags 点此展开

  • Navigation
  • 题库
  • 天梯
  • 评测
  • 题解
  • 关于

1246 丑数

USACO

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

题解

回到问题

超出时间 Time Limit Exceeded

总耗时: 5000 ms
0 / 0 数据通过测试.
最近的错误点信息 1.in 1.out

输入数据 (显示前20行)
7 28888
2 3 5 11 17 23 31
运行结果

测试点#1.in  结果:TLE    内存使用量:  492kB     时间使用量:  1000ms     
测试点#2.in 结果:TLE 内存使用量: 256kB 时间使用量: 1000ms
测试点#3.in 结果:TLE 内存使用量: 256kB 时间使用量: 1000ms
测试点#4.in 结果:TLE 内存使用量: 256kB 时间使用量: 1000ms
测试点#5.in 结果:TLE 内存使用量: 1000kB 时间使用量: 1000ms

当时tag上打的是堆,然后就一直想啊想怎么用堆去写这个题,结果Tm看题解才发现是一道DP的题。。。。坑死我了。。。。。

思路

1:根据丑数定义,不难递推得到任何一个丑数是由它之前的丑数再×一个原数组的值来;然而。。。。。。。。。。。。。这样还是会超时。。。。。。。。。。。。。。。。。

那就再优化!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2:开辟一个w数组,记录从s[i]这个位置往后*ans[w[i]]才大于之前的ans[pp-1]值,并且这个乘得的值会不断更新ans[pp];再递推下去,每一轮递推都要更新w[i];

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#define INF 9999999999
using namespace std;
long long s[101],ans[10000001];
long long w[101];
long long k,n;
int main(){
scanf("%lld%lld",&k,&n);
for(long long i=1;i<=k;++i)scanf("%lld",&s[i]),w[i]=1;
ans[1]=1;
for(long long i=2;i<=n+1;++i){
long long minn=INF;
for(long long j=1;j<=k;++j){
while(ans[w[j]]*s[j]<=ans[i-1])w[j]++;
minn=min(minn,ans[w[j]]*s[j]);
}
ans[i]=minn;
}
printf("%lld",ans[n+1]);
return 0;
}

丑数(USACO)的更多相关文章

  1. AC日记——丑数 codevs 1246

    1246 丑数 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 对于一给定的素 ...

  2. 插入排序的优化非希尔【不靠谱地讲可以优化到O(nlogn)】 USACO 丑数

    首先我们先介绍一下普通的插排,就是我们现在一般写的那种,效率是O(n^2)的. 普通的插排基于的思想就是找位置,然后插入进去,其他在它后面的元素全部后移,下面是普通插排的代码: #include< ...

  3. 【USACO 3.1.3】丑数

    [描述] 对于一给定的素数集合 S = {p1, p2, ..., pK}, 来考虑那些质因数全部属于S 的数的集合.这个集合包括,p1, p1p2, p1p1, 和 p1p2p3 (还有其它).这是 ...

  4. 洛谷P2723 丑数 Humble Numbers

    P2723 丑数 Humble Numbers 52通过 138提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目背景 对于一给定的素数 ...

  5. Luogu2723丑数Humble Numbers【归并排序】

    Luogu2723丑数Humble Numbers 题目背景 对于一给定的素数集合 S = {p1, p2, ..., pK},考虑一个正整数集合,该集合中任一元素的质因数全部属于S.这个正整数集合包 ...

  6. 洛谷P2723 丑数 Humble Numbers [2017年 6月计划 数论07]

    P2723 丑数 Humble Numbers 题目背景 对于一给定的素数集合 S = {p1, p2, ..., pK},考虑一个正整数集合,该集合中任一元素的质因数全部属于S.这个正整数集合包括, ...

  7. 剑指Offer面试题:29.丑数

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

  8. 剑指Offer:面试题34——丑数(java实现)

    问题描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路1: ...

  9. UVA136 求第1500个丑数

    枚举大范围数据..暴力检查题目条件 #include <iostream> #include <cstdio> #include <vector> #include ...

随机推荐

  1. 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】

      非常惭愧的说,由于之前一直使用的是windowservice,安装apache来进行服务器布置的,这种方式也是最简单最直接的方式, 但是由于php的服务大多都是linux栈的,咱们也不能落后呀,在 ...

  2. Disruptor深入解读

    将系统性能优化到极致,永远是程序爱好者所努力的一个方向.在java并发领域,也有很多的实践与创新,小到乐观锁.CAS,大到netty线程模型.纤程Quasar.kilim等.Disruptor是一个轻 ...

  3. Python自然语言处理学习笔记之评价(evaluationd)

    对模型的评价是在test set上进行的,本文首先介绍测试集应该满足的特征,然后介绍四种评价方法. 一.测试集的选择 1.首先,测试集必须是严格独立于训练集的,否则评价结果一定很高,但是虚高,不适用于 ...

  4. 来一波CSS兼容问题小总结吧

    1.DOCTYPE 影响 CSS 处理; 2.火狐 谷歌等浏览器 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 ...

  5. XmlHepler(拿去就能用)

    [系列目录](./XmlCatalog.html) 前言 本篇是这个系列的最后一篇.也是本人第一次写系列文章,虽然系列中大部分内容都是参考网络,但是自己都有敲代码验证.自己再编写过程中也学习到了很多知 ...

  6. 复杂的1秒--图解Google搜索技术

    谷歌(Google),一个非常成功,但又十分神秘,而且带有几分理想化色彩的互联网搜索巨人,它还是一家相当了不起的广告公司,谷歌首页上的那个搜索按钮是其年赢利200亿美元的杀手级应用,也是Interne ...

  7. 嵌套的Try-Catch块--------异常处理(3)

    当有一个Try块没有一个对应的异常可处理,则其父类的异常处理机制去处理.如果父类的异常处理机制不能处理,则java run-time system将会抛出一个异常. 例子: class Nest{ p ...

  8. 原生javascript满屏上下滚动

    使用到一个滚动事件:onmousewheel  (不支持火狐浏览器)   /  DOMMouseScroll  (支持火狐浏览器):这篇代码支持ie8以上版本,Firefox,Safari,Chrom ...

  9. 基于Bootstrap设计网页

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. 深入理解ajax系列第三篇——头部信息

    前面的话 每个HTTP请求和响应都会带有相应的头部信息,其中有的对开发人员有用.XHR对象提供了操作头部信息的方法.本文将详细介绍HTTP的头部信息 默认信息 默认情况下,在发送XHR请求的同时,还会 ...