您的位置:首页 > 其它

DP 01背包 hdu 2602

2011-04-08 18:50 411 查看
#include<iostream>

using namespace std;

#define M 1001

#define WMAX( a , b ) a > b ? a : b

int f[M] , w[M] , v[M];

int main()

{

 int n , mv;

 int t , i , j;

 scanf( "%d" , &t );

 while( t-- )

 {

  scanf( "%d %d" , &n , &mv );

  for( i = 0 ; i < n ; ++i )

  { scanf( "%d" , &v[i] ); }

  for( i = 0 ; i < n ; ++i )

  { scanf( "%d" , &w[i] ); }

  memset( f , 0 , sizeof( f ));

  for( i = 0 ; i < n ; ++i )

  {

   for( j = mv ; j >= w[i] ; --j )

   {

    f[j] = WMAX( f[j] , f[j - w[i]] + v[i] );

   }

  }

  printf( "%d/n" , f[mv] );

 }

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: