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 ;
}
#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 ;
}
相关文章推荐
- HDU 2602 Bone Collector 收集骨头+最基本的01背包
- HDU 2602 Bone Collector
- hdu 2602 Bone Collector(01背包问题)
- hdu 2602 Bone Collector
- HDU - 2602 Bone Collector
- HDU 2602 Bone Collector(01背包问题)
- HDU 2602 Bone Collector
- HDU 2602 Bone Collector (01背包问题 基础)
- hdu 2602 Bone Collector 【01背包模板】
- hdu 2602 Bone Collector
- hdu 2602 Bone Collector 01背包
- HDU 2602 Bone Collector (01背包)
- HDU 2602 Bone Collector 01背包模板题
- [2602]Bone Collector (HDU)
- hdu 2602 Bone Collector 0-1背包问题
- HDU 2602 Bone Collector(01背包)
- HDU 2602|Bone Collector|裸01背包问题
- hdu 2602 Bone Collector 01背包
- HDU 2602 Bone Collector【01背包】
- hdu 2602 Bone Collector(01背包)