蓝桥 2022 DP java

该代码示例是一个Java程序,用于解决物品体积动态规划问题。程序使用三维数组f来存储状态,通过三层循环遍历所有可能的物品选择、体积组合和因子数,应用动态规划策略求解。最终输出当有2022个物品,每个物品最大体积为2022,且可以分成最多10个因数时的方案数。
摘要由CSDN通过智能技术生成

🍑 蓝桥 2022
在这里插入图片描述
🙈 开 long

import java.util.*;

public class Main
{
	static int n = 2023;
//								     物品    体积
	static long[][][] f = new long[2023][2023][11];// 三维表示分成几个因数

	public static void main(String[] args)
	{
		for (int i = 0; i < n; i++)
			f[i][0][0] = 1;// 不选即体积为0,也是一种方案

		for (int i = 1; i < n; i++)// 枚举物品
			for (int j = 1; j < n; j++)// 枚举体积
				for (int k = 1; k < 11; k++)// 枚举分成的因子数
				{
					f[i][j][k] = f[i - 1][j][k];// 不选第 i 个物品
					if (j >= i)
						f[i][j][k] += f[i - 1][j - i][k - 1];
				}
		System.out.println(f[2022][2022][10]);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值