hoj1181,寻找丑数。
题意:把只具有素数因子2、3、5的数称为丑数;特别地,1也算做丑数。
把所有可能的丑数按从小到大的顺序排列。
例如:前11个丑数序列为1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...
要求输出第1500个丑数。
分析:采用动态规划的解法,初始时,设置三个指针p2,p3,p5。
计算三个指针指向的数分别乘以各自的因子2、3...
分类:
其他好文 时间:
2014-11-16 16:05:22
阅读次数:
180
一道经典的dp。因子中只含2,3,5,7的数字叫做humble number,求第n个丑数。任何新的丑数都是原来的丑数乘以2or3or5or7得来的,由此可以得到新的丑数的转移方程dp[i] = min(dp[a] * 2, dp[b] * 3, dp[c] * 5, dp[d] * 7),而a.....
分类:
其他好文 时间:
2014-10-30 20:34:00
阅读次数:
258
题意:问第n(n
题目链接:http://poj.org/problem?id=1338
——>>1, 2, 3, 4, 5, 6, 8, ...
假设小根堆存以上丑数,那么每次取出最小的数,这个最小的数nMin,它可以生成三个数:nMin * 2, nMin * 3, nMin * 5,将这三个数放入小根堆继续,一直复筛出1500个丑数为止。
小根堆可用优先队列来替代。
#inclu...
分类:
其他好文 时间:
2014-10-21 10:21:52
阅读次数:
215
题目来源:剑指offer之寻找丑数 与 待字闺中之序列生成分析
两个题目其实是同一个问题,所有放在一起,算是总结一下,题目如下:
给定一个表达式2^i*2^j,其中i,j为非负整数。请找到一种方法,生成如下序列:
2^0 * 5^0 = 1
2^1 * 5^0 = 2
2^2 * 5^0 = 4
2^0 * 5^1 = 5
2^3 * 5^0 = 8
2^1 * 5^1 = 10
2...
分类:
其他好文 时间:
2014-08-06 14:47:01
阅读次数:
132
我们把只包含因子2、3和5的数称作丑数(Ugly
Number)。例如6、8都是丑数,但14不是,因为它包含因子7。
方法1 :
暴力破解,逐个判断
代码:
#include
#include
using namespace std;
//判断是否是丑数
bool isUgly(int index){
while(index % 2 == 0){
index /= 2...
分类:
其他好文 时间:
2014-08-04 21:30:58
阅读次数:
313
HDU 1058 Humble Numbers (动规+寻找丑数问题)...
分类:
其他好文 时间:
2014-07-22 17:49:21
阅读次数:
262
poj1338 Ugly Numbers(丑数模拟)...
分类:
其他好文 时间:
2014-07-13 18:42:24
阅读次数:
232
既然将这道题分类到动态规划的题目里面,一开始便是用动态规划的思想去思考。一个上午毫无突破,看的人家的题解。定义四个伪指针存放下标,分别表示的意思是在已知的丑数中,能够与2,3,5,7相乘的最小的数的下标。上面这句话要好好体会。也就是说dp[p1] * 2 能够得到一个新的丑数,其他三个以此类推。但我...
分类:
其他好文 时间:
2014-07-06 20:41:32
阅读次数:
223
丑数:只包含一定的质因子的数称丑数,例如包含2,3,5.我们就把2,3,4,5,6,8,9,10,12,15.......。但我们通常把1称作为第一个丑数。解题思路:我们现在做的这道题,就是以2,3,5,7为质因子,要我们求第n个丑数(以1为第一个丑数),可以采用DP的思想来解决。我们先以ar...
分类:
其他好文 时间:
2014-07-06 14:12:48
阅读次数:
153
原题找不到了,应该是usaco之类的题目吧。给一个可以交题的链接:http://www.cqoi.net:2012/problem.php?id=1004思路:将素数一个一个往里乘,保证扫描的顺序是从小到大的就可以了。思路跟usaco training的丑数有点像,算是那道题的简单版吧。我的实现: ...
分类:
其他好文 时间:
2014-07-05 21:12:47
阅读次数:
256