import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int M=sc.nextInt(); int N=sc.nextInt(); int[]dp=new int[M+1]; for (int i = 0; i < N; i++) { int w=sc.nextInt(); int v=sc.nextInt(); int s=sc.nextInt(); if(s==0)s=10000; for (int j = 1; j <=s; s-=j,j*=2) { for (int k = M; k >=j*w; k--) { dp[k]=Math.max(dp[k], dp[k-j*w]+j*v); } } if(s>0){ for (int k = M; k >=s*w; k--) { dp[k]=Math.max(dp[k], dp[k-s*w]+s*v); } } } System.out.println(dp[M]); } }
0.0分
0 人评分
开心的金明 (C++代码)浏览:1188 |
整人!!浏览:840 |
Minesweeper (C语言代码)浏览:805 |
C语言程序设计教程(第三版)课后习题6.9 (C++代码)论pow函数的应用浏览:1027 |
C语言程序设计教程(第三版)课后习题6.11 (C++代码)(有个库函数叫sqrt)浏览:867 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:689 |
C二级辅导-计负均正 (C语言代码)浏览:658 |
【计算两点间的距离】 (C语言代码)浏览:884 |
【数组的距离】 (C语言代码)浏览:741 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:683 |