hdu2159 FATE (二维完全背包)

来源:互联网 发布:外汇新闻数据分析 编辑:程序博客网 时间:2024/05/16 07:27
#include <stdio.h>#include <string.h>#define MAXN 102int main(){int n,m,k,s,h,i,j;int dp[MAXN][MAXN],val[MAXN],r[MAXN];while(scanf("%d %d %d %d",&n,&m,&k,&s)!=EOF){memset(dp,0,sizeof(dp));for(i=1;i<=k;++i)scanf("%d %d",&val[i],&r[i]);for(h=1;h<=k;++h){for(i=r[h];i<=m;++i)for(j=1;j<=s;++j)if(dp[i][j]<dp[i-r[h]][j-1]+val[h])dp[i][j]=dp[i-r[h]][j-1]+val[h];}for(i=0;i<=m;++i)if(dp[i][s]>=n)break;if(i>m)printf("-1\n");elseprintf("%d\n",m-i);}return 0;}

原创粉丝点击