算法Day27 身材管理(三维背包)
2023-12-15 22:27:26
身材管理(三维背包)
Description
Input
Output
Sample
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 输入n的值
int money = scanner.nextInt();
int v = scanner.nextInt();
int price[] = new int[n];
int capacity[] = new int[n];
int happy[] = new int[n];
for(int i =0;i<n;i++){
price[i]=scanner.nextInt();
capacity[i] = scanner.nextInt();
happy[i] = scanner.nextInt();
}
System.out.println(calculate(price,capacity,happy,money,v));
}
public static int calculate(int price[],int cap[],int happy[],int allMoney,int capacity){
int dp[][][] = new int[price.length+1][capacity+1][allMoney+1];
int n = price.length;
for(int i = 1;i<=n;i++)
for(int money =1;money<=allMoney;money++)
for(int c = 1;c<=capacity;c++){
if(cap[i-1]<=c&&price[i-1]<=money){
dp[i][c][money] = Math.max(dp[i-1][c-cap[i-1]][money-price[i-1]]+happy[i-1],dp[i-1][c][money]);
}else {
dp[i][c][money] = dp[i-1][c][money];
}
}
return dp[n][capacity][allMoney];
}
}
思路
三维只是在二维上多了个嵌套的约束条件
文章来源:https://blog.csdn.net/m0_60695518/article/details/134937938
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!