70分求助
查看原帖
70分求助
979072
gyx577158484楼主2023/4/2 10:23
#include <stdio.h>

int Max(int x,int y)
{
    if(x>y) return x;
    else return y;
}

int time[105];
int value[105];
int dp[105][1005];
int T,M;

int main()
{
    scanf("%d %d",&T,&M);
    for(int i=1;i<=M;i++)
    scanf("%d %d",&time[i],&value[i]);
    for(int i=1;i<=M;i++)
      for(int j=1;j<=T;j++){
          if(j>=time[i]) dp[i][j] = Max(dp[i-1][j],dp[i-1][j-time[i]]+value[i]);
          else dp[i][j] = dp[i-1][j];
      }
    printf("%d",dp[M][T]);
    return 0;
}
2023/4/2 10:23
加载中...