第七周__背包问题
来源:互联网 发布:悬疑电视剧 知乎 编辑:程序博客网 时间:2024/05/16 13:58
package bbb;import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class Knapsack { public static void main(String[] args) { Scanner scanner = new Scanner(Knapsack.class.getResourceAsStream("e:/Knapsack.txt")); try { FileWriter out = new FileWriter(new File("e:/KnapsackResult.txt")); int W=scanner.nextInt(), n=scanner.nextInt(); int wv[][] = new int[n][2]; for(int i=0; i<n; i++){ wv[i][0]=scanner.nextInt(); wv[i][1]=scanner.nextInt(); } Knapsack knapsack = new Knapsack(); int K[][] = knapsack.getArray(W, n, wv); for(int w=0; w<=W; w++){ for(int j=0; j<=n; j++){ out.write(K[w][j]+"\t"); } out.write("\r\n"); } out.close(); scanner.close(); int[] isTaked = getIsTaked(wv, K, W, n); System.err.println("放入背包中的物品总重量为: "+isTaked[0]); System.err.println("放入背包中的物品编号为: "); for(int No=1; No<isTaked.length; No++){ if(isTaked[No] == 1) System.err.print(No + "\t"); } } catch (IOException e) { e.printStackTrace(); } } public int[][] getArray(int W, int n, int wv[][]){ int[][] K = new int[W+1][n+1]; for(int j=1; j<=n; j++){ for(int w=1; w<=W; w++){ int maxW = wv[j-1][0]; if(maxW>w){ K[w][j] = K[w][j-1]; }else{ K[w][j] = max(K[w][j - 1],K[w - maxW][j - 1]+wv[j - 1][1]); } } } return K; } public int max(int a, int b){ return a>b ? a : b; } public static int[] getIsTaked(int[][] wv,int[][] K,int W,int n){ int isTaked[]=new int[n+1]; int w = W; for(int j=n;j>0;j--){ if(K[w][j]>K[w][j-1]){ isTaked[j]=1; w = w - wv[j-1][0]; if(w<0) break; } } int sumW=0; for(int j=1;j<=n;j++){ if(isTaked[j]==1){ sumW+=wv[j-1][0]; } } isTaked[0] = sumW; return isTaked; } }
0 0
- 第七周__背包问题
- 第七周作业--背包问题
- 第七周作业--背包问题
- 第七周作业-背包问题
- 第七周作业--背包问题
- 第七周作业-背包问题
- 第七周作业----背包问题
- 第七周作业 背包问题
- 背包问题(第七周作业)
- 第七周作业——背包问题
- 第七周作业——背包问题
- 第七周作业1--背包问题
- 第七周作业——背包问题
- 第七周算法作业,背包问题
- 第七周作业——背包问题
- 第七周作业1-背包问题
- 第七周作业——背包问题
- 第七周作业1-------背包问题
- 单目运算符重载为成员函数 前++ 和后++的使用
- 解决NetworkOnMainThreadException
- 反编译Apk得到Java源代码
- Kali Linux 更换 主题
- Remove the default value from numeric textbox in MVC4
- 第七周__背包问题
- Mnesia数据库及其集群的配置
- fsjkfps[l'fs\\,;sa,f'wls;f'slcvsdpof0-pdsfsd;lkfk;s
- linux下启动oracle
- kali linux关闭触摸板
- dsgfad;lgv\m,dv\.;xcv][dspg]v;s.c\
- 高考结束啦!
- 这年头,惨遭家人逼婚怎么办?
- Love Letter