您的位置:首页 > 其它

HDU 2602 Bone Collector

2011-07-25 12:13 190 查看
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define max 1010
struct bone
{
int ve , value ;
}num[max] ;
int T , N , V , Mv[max] ;
int cmp ( int a , int b )
{
return a > b ? a : b ;
}

int main ()
{
scanf ( "%d" , &T ) ;
while ( T -- ) {
scanf ( "%d%d" , &N , &V ) ;
for ( int i = 1 ; i <= N ; i ++ )
scanf ( "%d" , &num[i].value ) ;
for ( int i = 1 ; i <= N ; i ++ )
scanf ( "%d" , &num[i].ve ) ;
for ( int i = 0 ; i <= V ; i ++ )
Mv[i] = 0 ;
for ( int i = 1 ; i <= N ; i ++ )
for ( int j = V ; j >= num[i].ve ; j -- )
Mv[j] = cmp ( Mv[j] , Mv[j - num[i].ve] + num[i].value ) ;

printf ( "%d\n" , Mv[V] ) ;
}
return 0 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: