【千里码】Task25-老王装货
2016-07-20 11:08
369 查看
载重上限5t,求最大载重量的方案
虽然知道这是背包问题,对于算法一脸懵逼的我还是只能一个个遍历过去,源代码手贱删了,下面贴个评论区和我差不多思路的代码
public class Answer25 { static int good[] = {509, 838, 924, 650, 604, 793, 564, 651, 697, 649, 747, 787, 701, 605, 644}; static int LIMIT = 5000; public static void main(String[] args) { int maxWeight = 0; String maxMethod = ""; for (int i = 0; i < 1 << good.length; i++) { String method = Integer.toBinaryString(i); while (method.length() < good.length) { method = "0" + method; } int sum = 0; for (int j = 0; j < method.length(); j++) { if (method.charAt(j) == '1') { sum += good[j]; } if (sum > LIMIT) { break; } } if (sum <= LIMIT && sum > maxWeight) { maxWeight = sum; maxMethod = method; } } String result = ""; int resultWeight = 0; for (int j = 0; j < maxMethod.length(); j++) { if (maxMethod.charAt(j) == '1') { result += (j + 1) + "-"; resultWeight += good[j]; } } if (result.length() > 0) { result = result.substring(0, result.length() - 1); } System.out.println(result); System.out.println(resultWeight); }
相关文章推荐
- C#使用回溯法解决背包问题实例分析
- 关于背包问题的一些理解和应用
- C++动态规划之背包问题解决方法
- C#用递归算法解决经典背包问题
- C#使用动态规划解决0-1背包问题实例分析
- 动态规划解决背包问题的核心思路
- 背包问题
- HDU 2602 动态规划01背包
- 例题分析-数学作业,魔法石的诱惑
- hdu2546
- HDU 2955
- 动态规划背包问题篇
- 简单0-1背包
- 背包九讲问题
- 背包问题knapsack的三种解法(Python 和 C)
- 动态规划问题 -- 背包问题 单价不等水果 装入固定容量背包 最大价值问题
- 背包问题knapsack的三种解法(Python 和 C)
- hihocoder #1091
- poj 3624
- poj 1976 01背包