#include <stdio.h>
#include <string.h>
#define INF -999999
#define MAXN 1002
int dp[MAXN][102];
int main()
{
int test,i,j,k,N,M,L;
int time[102],val[102];
scanf("%d",&test);
while(test--)
{
scanf("%d %d %d",&N,&M,&L);
for(i=0;i<N;++i)
scanf("%d %d",&time[i],&val[i]);
memset(dp,INF,sizeof(dp));
for(i=0;i<L;++i)//注意初始化
dp[i][0]=0;
for(k=0;k<N;++k)
{
for(i=L;i>=time[k];--i)
for(j=M;j>0;--j)
if(dp[i][j]<dp[i-time[k]][j-1]+val[k])
dp[i][j]=dp[i-time[k]][j-1]+val[k];
}
if(dp[L][M]>0)
printf("%d\n",dp[L][M]);
else
printf("0\n");
}
return 0;
}
hdu3496 Watch The Movie (二维背包)
最新推荐文章于 2019-08-09 21:27:02 发布