解题思路:
注意事项:
参考代码:
#include <stdio.h>
#include <stdlib.h>
#define max 10000
int f[max][max]={0};
int time[max]={0};
int value[max]={0};
int MAX(int a,int b)
{
if(a>b)
return a;
else
return b;
}
int main()
{
int T,M;
scanf("%d%d",&T,&M);
int i;
int j;
for(i=1;i<=M;i++)
{
scanf("%d%d",&time[i],&value[i]);
}
for(i=1;i<=M;i++)
{
for(j=1;j<=T;j++)
{
if(j<time[i])
{
f[i][j]=f[i-1][j];
}
else
{
f[i][j]=MAX(f[i-1][j],f[i-1][j-time[i]]+value[i]);
}
}
}
printf("%d",f[M][T]);
}
0.0分
0 人评分