hdu 4508(完全背包)

来源:互联网 发布:linux如何设置双屏显示 编辑:程序博客网 时间:2024/06/05 22:44

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

一开始还以为是一个01背包呢。。。看了第二组测试数据之后就发现是完全背包了。。。

View Code
 1 #include<iostream> 2 const int N=110; 3 using namespace std; 4 int dp[N*N*10]; 5 struct Node{ 6     int a,b; 7 }node[N]; 8  9 int main(){10     int n;11     while(~scanf("%d",&n)){12         for(int i=0;i<n;i++){13             scanf("%d%d",&node[i].a,&node[i].b);14         }15         int m;16         scanf("%d",&m);17         memset(dp,0,sizeof(dp));18         for(int i=0;i<n;i++){19             for(int j=0;j<=m;j++){20                 if(j<node[i].b)continue;21                 dp[j]=max(dp[j],dp[j-node[i].b]+node[i].a);22             }23         }24         printf("%d\n",dp[m]);25     }26     return 0;27 }

 

0 0
原创粉丝点击