题意:因子只由2,3,5,7组成的数字为Humble Numbers,问你第n个Humble Numbers是几。
链接:HDU 1058传送门
想法:Humble Numbers都可以写成2的几次方*3的几次方*5的几次方*7的几次方,可以用dp也可以直接打表来模拟,我用的是直接打表,也很快且容易理解
代码:
void init()
{
num[1]=1;
int a,b,c,d;
a=b=c=d=1;
for(int i=2; i<maxn; i++)
{
num[i]=MIN(num[a]*2,num[b]*3,num[c]*5,num[d]*7);
if(num[i]==num[a]*2)
a++;
if(num[i]==num[b]*3)
b++;
if(num[i]==num[c]*5)
c++;
if(num[i]==num[d]*7)
d++;
}
}