P1507 NASA的食物计划

有n种候选食物,且只有一样,分别给出对应食物的体积、质量、卡路里
飞船空间和载重都有限,分别为v和m,求能承载食物的最大卡路里

1. 动态规划

void maxval(int v,int m,vector<int>&weight,vector<int>&volume,vector<int>&w){ 
    int n = w.size();
    int dp[v+1][m+1];
    memset(dp,0,sizeof(dp));
    int res = 0;
    for(int i=0;i<n;i++)
        for(int j=v;j>=volume[i];j--)
            for(int k=m;k>=weight[i];k--){
                dp[j][k] = max(dp[j][k],dp[j-volume[i]][k-weight[i]]+w[i]);
                res = max(res,dp[j][k]);
            }
    cout<<res;
    return;
}
posted @ 2023-08-23 23:05  失控D大白兔  阅读(8)  评论(0编辑  收藏  举报