1 条题解
-
0
C :
#include<stdio.h> int f[20002]; int max(int a, int b){ return a > b ? a : b; } int main() { int i, j, v, n, w; scanf("%d%d", &v, &n); for(i = 0; i < n; i++){ scanf("%d", &w); for(j = v; j >= w; j--){ f[j] = max(f[j], f[j-w] + w); } } printf("%d\n", v - f[v]); return 0; }C++ :
#include <iostream> using namespace std; int f[20001]; int main() { int V,n,i,j; cin>>V>>n; int a[n+1]; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) { for(j=V;j>=1;j--) { if(j>=a[i]) f[j]=max(f[j],f[j-a[i]]+a[i]); } } cout<<V-f[V]; return 0; }
- 1
信息
- ID
- 1156
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者