zoukankan      html  css  js  c++  java
  • 动态规划01背包算法

     1 int Bag01( int m,int n,int w[], int p[] )//n为背包容量,m为物品数量;w[] 为物品的重量;p[]为物品的价值
     2 {
     3    int c[10][100];//最优子结构矩阵,m<10,n<100
     4      int i,j;
     5      for( i=0;i<10;i++ )
     6       for( j=0;j<100;j++ )
     7        c[i][j]=0;
     8 
     9      for( i = 1;i < n+1;i++ )
    10       for( j = 1;j < m+1;j++ )
    11       {
    12          if( w[i] > j ) //第i个物品的重量 > 包的容量;
    13           c[i][j] = c[i-1][j];
    14          else 
    15          {
    16              if( p[i]+c[i-1][j-w[i]] > c[i-1][j] )//所以第i行的数据是从第i-1行得来的。
    17             c[i][j] = p[i]+c[i-1][j-w[i]]; 
    18           else
    19             c[i][j] = c[i-1][j];
    20          }
    21       }
    22   return( c[n][m] );
    23 }
  • 相关阅读:
    开源软件的国内镜像
    ruby学习之路(一)
    VBS正则表达式
    fscanf和feof的组合使用
    计算机产生随机数
    常用:JQ
    unitegallery 测试使用-自动播放关闭
    H5重力感应(转)
    JS中,如何判断一个数是不是小数?如果是小数,如何判断它是几位小数 保留n位小数
    input禁止显示历史输入记录
  • 原文地址:https://www.cnblogs.com/kevinGaoblog/p/2439788.html
Copyright © 2011-2022 走看看