1 条题解
-
0
C :
#include "stdio.h" int v,w,n; int a[50],b[50],c[50],f[401][401]; int main() { int i,j,k; scanf("%d%d%d",&v,&w,&n); for(i=0;i<n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]); for(i=0;i<n;i++) { for(j=v;j>=a[i];j--) for(k=w;k>=b[i];k--) if(f[j][k]<f[j-a[i]][k-b[i]]+c[i]) f[j][k]=f[j-a[i]][k-b[i]]+c[i]; } printf("%d\n",f[v][w]); return 0; }
C++ :
#include<cstdio> #include<cstring> using namespace std; int v,m,n,f[400][400]={0}; int a,b,c; void bag(int,int,int); int main() { //memset(f,127,sizeof(f)); f[0][0]=0; scanf("%d%d%d",&v,&m,&n); for(int i=1;i<=n;i++) { scanf("%d%d%d",&a,&b,&c); bag(a,b,c); } printf("%d",f[v][m]); } void bag(int a,int b,int c) { for(int i=v;i>=0;i--) { for(int j=m;j>=0;j--) { int x=i+a,y=j+b; if(x>v) break; if(y>m) continue; { if(f[x][y]<f[i][j]+c) f[x][y]=f[i][j]+c; } } } }
- 1
信息
- ID
- 789
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者