HDOJ 2602 Bone Collector

来源:互联网 发布:苹果手机网络加速器 编辑:程序博客网 时间:2024/06/06 21:50

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602

 这是一道简单的01背包问题的应用,直接用01代码一次性AC

源代码:

//HDOJ 2602 AC#include <iostream>using namespace std;#define LEN 1001  //刚开始看错了  写成了 10001结果说是超出内存int value[LEN],volume[LEN];int dp[LEN][LEN];//比较两个数的大小int max(int a,int b){if(a>b){return a;}else{return b;}}//可用作模板void cal(int n,int v,int tt[],int pp[]){int i,j;for(i=1;i<=n;i++){  for(j=0;j<=v;j++){if(j>=tt[i]){  dp[i][j]=max(dp[i-1][j],dp[i-1][j-tt[i]]+pp[i]);}else{dp[i][j]=dp[i-1][j];}}}}int main(){int nCase,i;int n,v;cin>>nCase;while(nCase--){memset(dp,0,sizeof(dp));//初始化cin>>n>>v;for(i=1;i<=n;i++){cin>>value[i];}for(i=1;i<=n;i++){cin>>volume[i];}cal(n,v,volume,value);cout<<dp[n][v]<<endl;}return 0;}


 

原创粉丝点击