题解 | #最小邮票数#

最小邮票数

http://www.nowcoder.com/practice/83800ae3292b4256b7349ded5f178dd1

最小邮票数的思想是: 当前需要凑j块钱, 选择了面额为a[i]的邮票,那么可以有两个选择 第一:仍然保持dp[j]张数量不变; 第二:选择面额为j-a[i]与面额为a[i]的邮票,其有票数为两者之和,即为dp[j-a[i]] + 1; 寻找最优解,即选择两者的最小值。 由动态规划的思想,从面值大的往面值小的遍历,既可以得到最后的答案。

#include<stdio.h>

int dp[100];

int main(){
    int m,n;
    while( scanf("%d", &m) != EOF){
        scanf("%d", &n); 
        int a[n];
        for(int i=0; i<n; i++){
            scanf("%d", &a[i]);
        }
        for(int i=0; i<100; i++){
            dp[i] = n+1;
        }
        
        dp[0] = 0;  dp[a[0]] = 1;
        
        for(int i=1; i<n; i++){
            for(int j=m; j>=a[i]; j--){
                dp[j] = fmin( dp[j], dp[j-a[i]] + 1);
            }
        }
        
        if(dp[m] <= n){
            printf("%d\n",dp[m]);
        }else{
            puts("0");
        }
    }
    return 0;
    
}
全部评论

相关推荐

01-15 17:34
保定学院 Java
数学转码崽:学历没优势就得卷项目和实习啊,但是我看了一下你这个项目,什么雪花算法,搜索引擎,Docker,minio这些都属于通用的东西啊,根本不算亮点,没有任何业务相关性。 还有第二个看到统一鉴权,分片上传估计面试官都不想看了。连我一个偶尔刷刷牛客简历的都看多了,面试官估计早都看吐了。。。 秋招结束了,就尽量找找中小厂吧,毕竟你现在转行已经没时间了,高低有一段实习经历
点赞 评论 收藏
分享
02-03 12:20
门头沟学院 Java
一天代码十万三:你这个简历东西太杂了,根本看不出你想投什么岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务