洛谷 P2925 - Hay For Sale S

题目描述

P2925 [USACO08DEC]Hay For Sale S

解法:0-1背包问题

这里稍微有个优化:当马车早早被装满时,就可以结束程序输出结果了

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int c, h;
    scanf("%d%d", &c, &h);
    int v[h+1], dp[c+1];
    for(int i=1;i<=h;i++)
    {
        scanf("%d", v+i);
    }
    memset(dp, 0, sizeof(dp));
    for(int i=1;i<=h;i++)
    {
        for(int j=c;j>=v[i];j--)
        {
            dp[j] = max(dp[j], dp[j-v[i]]+v[i]);
            if(dp[c]==c)
            {
                printf("%d", c);
                return 0;
            }
        }
    }
    printf("%d", dp[c]);
    return 0;
}
发布了152 篇原创文章 · 获赞 22 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_38204302/article/details/105199541