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 }
  • 相关阅读:
    数据库01
    并发编程6
    并发编程5
    并发编程4
    并发编程3
    并发编程2
    并发编程1
    kali 下文件操作
    kali driftnet
    2017.1.1
  • 原文地址:https://www.cnblogs.com/kevinGaoblog/p/2439788.html
Copyright © 2011-2022 走看看