40分求救
查看原帖
40分求救
840699
clearlove09180918楼主2022/10/19 11:49
import java.util.Scanner;
class Main {
    static int time;
    static int number;
    static int[] cost = new int[105];
    static int[] value = new int[105];
    static int[][] dp = new int[105][1005];
    public static void main(String argus[]) {
        Scanner sc = new Scanner(System.in);
        time = sc.nextInt();
        number = sc.nextInt();
        for (int i = 1; i <= number; i++) {
            cost[i] = sc.nextInt();
            value[i] = sc.nextInt();
        }
        for (int i = 0; i <= number; i++) {
            dp[number][0] = 0;
        }
        for (int i = 0; i <= time; i++) {
            dp[0][time] = 0;
        }
        for (int i = 1; i <= number; i++) {
            for (int j = 1; j <= time; j++) {
                if (j >= cost[i]){
                    dp[i][j] = Math.max(dp[i - 1][j], dp[i - 1][j - cost[i]] + value[i]);
                }
            }
        }
        System.out.println(dp[number][time]);
    }
}
2022/10/19 11:49
加载中...