30分 求调教
查看原帖
30分 求调教
1517317
WHXeO46楼主2024/10/29 20:43
#include<stdio.h>
#include<stdlib.h>


int herbs[105][2];


inline int max(int a, int b)
{
    return a>b?a:b;
}

int dp(int time, int M)
{
    if (M < 0)
    {
        return 0;
    }
    if (time < herbs[M][0])
    {
        return dp(time, M-1);
    }

    return max(dp(time, M-1), dp(time-herbs[M][0], M-1)+herbs[M][1]);
}



int main(void)
{
    int T, M;
    scanf("%d %d", &T, &M);
    
    for (int i = 0; i<M; i++)
    {
        scanf("%d %d", &herbs[i][0], &herbs[i][1]);
    }

    int ans = dp(T, M-1);

    printf("%d", ans);
    return 0;
}
2024/10/29 20:43
加载中...