C语言背包问题优化[通俗易懂]

C语言背包问题优化[通俗易懂]#include#defineV1500intf[V];intweight[10];intvalue[10];#definemax(x,y)(x)>(y)?(x):(y)intmain(){intN,M;scanf(“%d%d”,&N,&M);for(inti=1;

大家好,又见面了,我是你们的朋友全栈君。

#include<stdio.h> 
#define V 1500 
int f[V]; 
int weight[10];  
int value[10];  
#define max(x,y) (x)>(y)?(x):(y) 
int main()  
{    
    int N, M;  
    scanf("%d %d", &N, &M);
    for (int i=1; i<=N; i++)  
    {  
        scanf("%d %d", &weight[i], &value[i]);  
    }   
    for (int i=1; i<=N; i++)  
        for (int j=M; j>=1; j--)  
        {  
            if (weight[i] <= j)  
            {  
                f[j] = max(f[j],f[j-weight[i]] + value[i]);  
            }             
        }  
    printf("%d\n", f[M]);    
    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159106.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号