第7周作业1——背包问题
来源:互联网 发布:java onvif协议 编辑:程序博客网 时间:2024/03/29 18:45
对上文中提到的背包问题提供的表1(第一行为背包总重量15,物品数量5;第2-6行,分别为第1-5件物品的重量与价值),W=15,编程计算最终背包所装物品的编号、总重量与总价值。要求能够把构造的二维表格输出到文件KnapsackResult.txt中。
解:
package week7;import java.io.*;public class Backpack {public static void main(String[] args) {// TODO 自动生成的方法存根File file1 = new File("Knapsack.txt");File file2 = new File("KnapsackResult.txt");int k[][] = new int[6][2];int K[][] = new int[16][6];String str;int tempchar;try {FileReader in = new FileReader(file1);BufferedReader bufr = new BufferedReader(in);FileWriter fw = new FileWriter(file2);BufferedWriter bufw = new BufferedWriter(fw);str = "";int a = 0, b = 0, i = 0;while ((tempchar = bufr.read()) != -1) {str = str + (char) tempchar;if ((char) tempchar == ' ') {a = Integer.parseInt(str.trim());str = "";}if ((char) tempchar == '\n') {b = Integer.parseInt(str.trim());k[i][0] = a; k[i][1] = b;str = "";i++;}}for(int j = 1; j < 6; j++) {for(int w = 1; w < 16; w++) {if(k[j][0] > w) {K[w][j] = K[w][j-1];}else if(K[w][j-1] > (K[w-k[j][0]][j-1]+k[j][1])) {K[w][j] = K[w][j-1];}elseK[w][j] = K[w-k[j][0]][j-1]+k[j][1];}}str="";tempchar = 32;for(int x = 0; x < 16; x++) {for(int y = 0; y < 6; y++) {System.out.print(K[x][y]+" ");str=str+Integer.toString(K[x][y])+(char) tempchar;if(y==5){bufw.write(str);bufw.newLine();str="";}}System.out.println();}bufr.close();in.close();bufw.close();fw.close();}catch(Exception e) {e.printStackTrace();}}}
0 0
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题。
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题
- 第7周作业1——背包问题。
- 第7周作业1——背包问题
- DBMS_SCHEDULER 带参数JOB
- JavaCrazyer Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- ubuntu下postfix邮件服务器安装
- Virtualbox虚拟机Ubuntu共享文件夹设置 自动挂载
- Bzoj2809 APIO2012 派遣 主席树经典题
- 第7周作业1——背包问题
- ListView做的日历
- Python使用struct处理二进制
- Spring定时任务的几种实现
- Java+Android技巧
- linux下打开文档中文乱码的问题
- 代码优化重构(很经典)
- 图的数据结构
- hdu1166 hdu1394 hdu2795