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=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("max="+dp[M]); } }
0.0分
0 人评分
C语言训练-求PI* (C语言代码)浏览:930 |
小明A+B (C语言代码)浏览:1316 |
1157题解浏览:769 |
1014题解浏览:524 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:383 |
良心推荐——>题解1049:C语言程序设计教程(第三版)课后习题11.1 (C语言描述——简单明了,时间复杂度低)浏览:1318 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:592 |
1162答案错误,为什么浏览:700 |
DNA (Java代码)浏览:971 |
简单的a+b (C语言代码)浏览:476 |