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 }
  • 相关阅读:
    数据库连接单例模式
    魔术方法
    序列化与反序列化
    设计模式
    类的自动加载
    错误处理
    匿名类--php7.0以上
    OpenCV中HSV颜色模型及颜色分量范围
    Opencv 轮廓提取
    opencv 二值化_OpenCV二值图像案例分析精选 | 第二期
  • 原文地址:https://www.cnblogs.com/kevinGaoblog/p/2439788.html
Copyright © 2011-2022 走看看