这个题差点做不出来的,还是看以前的代码才勉强做出来了
代码:
import java.util.Scanner;public class 开心的金明 { static int n,m; static int[][] arr; public static void main(String[] args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); int[] money=new int[m+1]; int[] value=new int[m+1]; for (int i = 1; i < value.length; i++) { money[i]=sc.nextInt(); value[i]=sc.nextInt(); } arr=new int[m+1][n+1]; for (int i = 1; i < m+1; i++) { for (int j = 1; j < n+1; j++) { if(j>=money[i]){ arr[i][j]=Math.max(arr[i-1][j],arr[i-1][j-money[i]]+value[i]*money[i]); } else arr[i][j]=arr[i-1][j]; } } System.out.PRintln(arr[m][n]); }}
新闻热点
疑难解答