HDU-2159 fate 二维背包

来源:互联网 发布:ant运行java文件 编辑:程序博客网 时间:2024/06/05 01:00
#include<cstdio>#include<cstring>int dp[101][101];int main(){int n,m,k,s;int a,b;while(scanf("%d %d %d %d",&n,&m,&k,&s)!=EOF)        //还需的经验值,保留的忍耐度,怪的种数和最多的杀怪数{memset(dp,0,sizeof(dp));for(int i=1;i<=k;i++)                          //怪的种数{scanf("%d %d",&a,&b);for(int j=1;j<=s;j++)                      //杀怪数for(int t=b;t<=m;t++)                  //保留的忍耐度if(dp[j-1][t-b]+a>dp[j][t])dp[j][t]=dp[j-1][t-b]+a;       //经验值}if(dp[s][m]<n)printf("-1\n");else{int min=m;for(int i=1;i<=s;i++)                 //找答案for(int j=0;j<=m;j++)if(dp[i][j]>=n && j<min)min=j;printf("%d\n",m-min);}}return 0;}

原创粉丝点击