這個題差點做不出來的,還是看以前的代碼才勉強做出來了
代碼:
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]); }}
新聞熱點
疑難解答