当前位置: 首页 > news >正文

flash网站建设教程下载爱南宁官方网站

flash网站建设教程,下载爱南宁官方网站,wordpress 分类模板指定,网站后台放在哪里背包问题之前的C语言版本已经将思路解析的差不多#xff0c;虽然还有些许错误需要改正#xff0c;但大体思路是正确的#xff0c;需要的读者请参阅动态规划之背包问题#xff08;C语言#xff09; 背包问题本身就是典型的动态规划问题#xff0c;所以这里只给出动态规划…背包问题之前的C语言版本已经将思路解析的差不多虽然还有些许错误需要改正但大体思路是正确的需要的读者请参阅动态规划之背包问题C语言 背包问题本身就是典型的动态规划问题所以这里只给出动态规划的算法。 0-1背包 思路一常规做法 import java.util.Scanner;public class Main {static Scanner in new Scanner(System.in);static int[] v,w;static int[][] d;static int n, c;public static void main(String[] args) {n in.nextInt();c in.nextInt();v new int[n1];w new int[n1];d new int[c1][c1];for (int i 1; i n; i) {v[i] in.nextInt();w[i] in.nextInt();}/*** d(i, j) max{d(i1, j), d(i1, j - V[i]) W[i]}* d(i, j)表示把第i, i1, i2...n个物品装到容量为 j 的背包中的最大总重量* 所以i必须逆序 j无所谓* */for(int i n; i 1; i--) {for(int j 0; j c; j) {d[i][j] (in ? 0 : d[i1][j]);if(j v[i]) {d[i][j] Math.max(d[i][j],d[i1][j-v[i]]w[i]);}}}System.out.println(d[1][c]);} } 思路二滚动数组在输入数据的时候就进行处理 import java.util.Scanner;public class Main {static Scanner in new Scanner(System.in);static int[] v,w;static int[][] d;static int n, c;public static void main(String[] args) {n in.nextInt();c in.nextInt();v new int[n1];w new int[n1];d new int[c1][c1];/*** d(i, j) max{d(i-1, j), d(i-1, j - V[i]) W[i]}* d(i, j)表示把第前 i 个物品物品装到容量为 j 的背包中的最大总重量* */for(int i 1; i n; i) {int v in.nextInt();int w in.nextInt();for(int j 0; j c; j) {d[i][j] (i1 ? 0 : d[i-1][j]);if(j v) {d[i][j] Math.max(d[i][j],d[i-1][j-v]w);}}}System.out.println(d[n][c]);} } 思路三用一维数组实现 import java.util.Scanner;class Main {Scanner in new Scanner(System.in);static int[] w, v, d;static int n, c;public static void main(String[] args) {/*v为背包容量 n为物品件数*/n in.nextInt();c in.nextInt();w new int[n1];v new int[n1];d new int[c1];/*w为物品重量数组 v为物品价值数组*/for (int i 1; i n; i) {w[i] in.nextInt();v[i] in.nextInt();}for(int i 1; i n; i) {//一维数组实现二次循环中必须用倒序for(int j c; j w[i]; j--) {d[j] Math.max(d[j], d[j - w[i]] v[i]);}}System.out.println(d[c]);} }思路四最简单版 import java.util.Scanner;public class Main {static Scanner in new Scanner(System.in);static int[] v, w, d;static int n, c;public static void main(String[] args) {n in.nextInt();c in.nextInt();v new int[n1];w new int[n1];d new int[c1];for (int i 1; i n; i) {int v in.nextInt();int w in.nextInt();for (int j c; j 0; j--) {if (j v) {d[j] Math.max(d[j], d[j-v] w);}}}System.out.println(d[c]);} } 完全背包 用二维数组实现 import java.util.Scanner;class Main {public static void main(String[] args) {Scanner input new Scanner(System.in);/*v为背包容量 n为物品件数*/int v input.nextInt();int n input.nextInt();int[] weight new int[n1];int[] value new int[n1];int[][] fa new int[n1][v1];/*weight为物品重量数组 value为物品价值数组*/for (int i 1; i n; i) {weight[i] input.nextInt();value[i] input.nextInt();}for(int i 1; i n; i) {for(int j 1; j v; j) {for(int k 0; k * weight[i] j; k) {fa[i][j] Math.max(fa[i][j], fa[i - 1][j - k * weight[i]] k * value[i]);}}}System.out.println(fa[n][v]);} } 用一维数组实现 import java.util.Scanner;class Main {public static void main(String[] args) {Scanner input new Scanner(System.in);/*v为背包容量 n为物品件数*/int v input.nextInt();int n input.nextInt();int[] weight new int[n1];int[] value new int[n1];int[] fa new int[v1];/*weight为物品重量数组 value为物品价值数组*/for (int i 1; i n; i) {weight[i] input.nextInt();value[i] input.nextInt();}for(int i 1; i n; i) {//完全背包问题一维数组实现二次循环必须正序for(int j weight[i]; j v; j) {fa[j] Math.max(fa[j], fa[j - weight[i]] value[i]);}}System.out.println(fa[v]);} } 多重背包 用二维数组实现 import java.util.Scanner;class Main {public static void main(String[] args) {Scanner input new Scanner(System.in);/*v为背包容量 n为物品件数*/int v input.nextInt();int n input.nextInt();int[] weight new int[n1];int[] value new int[n1];int[] num new int[n1];int[][] fa new int[n1][v1];/*weight为物品重量数组 value为物品价值数组*/for (int i 1; i n; i) {weight[i] input.nextInt();value[i] input.nextInt();num[i] input.nextInt();}for(int i 1; i n; i) {for(int j 1; j v; j) {for(int k 1; k num[i] k * weight[i] j; k) {fa[i][j] Math.max(fa[i-1][j], fa[i - 1][j - k * weight[i]] k * value[i]);}}}System.out.println(fa[n][v]);} } 用一维数组实现 import java.util.Scanner;class Main {public static void main(String[] args) {Scanner input new Scanner(System.in);/*v为背包容量 n为物品件数*/int v input.nextInt();int n input.nextInt();int[] weight new int[n1];int[] value new int[n1];int[] num new int[n1];int[] fa new int[v1];/*weight为物品重量数组 value为物品价值数组*/for (int i 1; i n; i) {weight[i] input.nextInt();value[i] input.nextInt();num[i] input.nextInt();}for (int i 1; i n; i) {for (int j v; j 1; j--) {for (int k 1; k num[i] k * weight[i] j; k) {fa[j] Math.max(fa[j], fa[j - k * weight[i]] k * value[i]);}}}System.out.println(fa[v]);} }
http://www.zqtcl.cn/news/29495/

相关文章:

  • 个人房屋做民宿在哪个网站seo与sem的区别与联系
  • 军事网站大全军事网vs做网站开发吗
  • seo怎么给网站做外链手机广告推广软件
  • 烟台建站价格js怎么做网页
  • 网站会员充值接口怎么做的郑州网站制作方案报价
  • 如何制作响应式网站青秀区网站建设
  • 网站的加盟代理网站建设公司市场
  • 加强机关门户网站建设免费行情软件app网站直播下载
  • 万网域名管理网站黑色企业网站
  • 做百度移动网站点击软上海频道做网站怎么样
  • 那些网站可以做行测题有没有专门做蛋糕的网站
  • 网站模版如何使用wordpress 4.8.4 漏洞
  • 昆明比较好的网站开发公司大连专业模板网站制作公司
  • 重庆企业网站制作公司广东确诊病例最新消息
  • 做产品网站应用软件是什么
  • 企业网站推广的一般策略非遗文化网站建设
  • 上海集团网站建设公司好门户网站 营销
  • 无锡网站开发电话阿里云网站建设 部署与发布考试
  • 有声小说网站开发php公司网站
  • 网站建设哪些分类网站安全建设申请
  • 厦门城乡建设厅网站购书网亚马逊商城
  • 手机网站定制建设免费域名申请平台
  • html欧美网站模板怎么建立一个公司的网站吗
  • 做微信公众号的网站吗北京网站开发公司大全
  • 万州哪里有做网站的北京优化公司司
  • 法律垂直问答网站怎样做最好的搭建网页的平台
  • 营销型 手机网站排名好的昆明网站建设
  • 某俄文网站新手做电商哪个平台好
  • 牙科网站模板网站怎么做搜狗排名
  • 网页设计购物网站h5页面制作工具app