标签:size get sign pst test tput end http nbsp
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3449
Description
Input
Output
Sample Input
3 800 300 2 30 50 25 80 600 1 50 130 400 3 40 70 30 40 35 60
Sample Output
210
大意:在购买一类物品之前,必须买另一种物品。
本题是购买袋子,有体积,但是没有价值。
AC代码:
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define ll long long const int maxn=1e5+5; const int INF=0x3f3f3f3f; int dp[maxn]; int temp[maxn]; int main() { int N,P; while(scanf("%d%d",&N,&P)==2) { memset(dp,0,sizeof(dp)); for(int i=1; i<=N; i++) { int p,m; scanf("%d%d",&p,&m); memset(temp,-1,sizeof(temp)); for(int k=p; k<=P; k++) temp[k]=dp[k-p]; while(m--) { int a,b; scanf("%d%d",&a,&b); for(int k=P; k>=a; k--) if(temp[k-a]!=-1) temp[k]=max(temp[k],temp[k-a]+b); } for(int k=1; k<=P; k++) dp[k]=max(dp[k],temp[k]); } printf("%d\n",dp[P]); } return 0; }
一个写的好几种方法的博客:http://www.cnblogs.com/wuyiqi/archive/2011/11/26/2264283.html
标签:size get sign pst test tput end http nbsp
原文地址:http://www.cnblogs.com/a-clown/p/6040268.html