【codevs1246】丑数

problem

solution

codes

#include<cstdio> 
int p[101], a[101], k, n;
long long ans[100001], MIN;
int main(){
    ans[0]=1;
    scanf("%d%d",&k,&n);
    for (int i=1;i<=k;i++) scanf("%d",&p[i]);
    for (int i=1;i<=n;i++){
        MIN=0x7FFFFFFF;
        for (int j=1;j<=k;j++){
            while (p[j]*ans[a[j]] <= ans[i-1]) a[j]++;
            if (MIN > p[j]*ans[a[j]]) MIN=p[j]*ans[a[j]];
        }
        ans[i] = MIN;
    }
    printf("%lld",ans[n]);
    return 0;
}
原文地址:https://www.cnblogs.com/gwj1314/p/9444721.html