import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int V=sc.nextInt(); int N=sc.nextInt(); int[]dp=new int[V+1]; for (int i = 0; i < N; i++) { int w=sc.nextInt(); int v=w; int s=1; for (int j = 1; j <=s; s-=j,j*=2) { for (int k = V; k >=j*w; k--) { dp[k]=Math.max(dp[k], dp[k-j*w]+j*v); } } } System.out.println(V-dp[V]); } }
0.0分
1 人评分
模拟计算器 (C语言代码)浏览:904 |
简单的a+b (C语言代码)浏览:655 |
【亲和数】 (C语言代码)浏览:877 |
本人酷爱递归实现很多问题,这里也是浏览:570 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:633 |
Tom数 (C语言代码)浏览:730 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:512 |
C二级辅导-计负均正 (C语言代码)浏览:500 |
淘淘的名单 (C语言代码)浏览:1239 |
矩阵的对角线之和 (C语言代码)浏览:1369 |