1 条题解
-
0
C :
#include<stdio.h> #define T -5000000000 int main() { int n,m,v,i,j; long long d[50000],c[2000],w[2000]; scanf("%d",&n); while(n--) { scanf("%d%d",&m,&v); for(i=0;i<m;i++) scanf("%lld%lld",&c[i],&w[i]); d[0]=0; for(j=1;j<=v;j++) d[j]=T; for(i=0;i<m;i++) { for(j=c[i];j<=v;j++) if(d[j]<d[j-c[i]]+w[i]) d[j]=d[j-c[i]]+w[i]; } if(d[v]>0) printf("%lld\n",d[v]); else printf("NO\n"); } return 0; }
C++ :
#include<stdio.h> #define T -5000000000 int main() { int c,m,n,i,j; long long f[50000],w[2000],v[2000]; scanf("%d",&c); while(c--) { scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%lld%lld",&w[i],&v[i]); f[0]=0; for(j=1;j<=m;j++) f[j]=T; for(i=0;i<n;i++) { for(j=w[i];j<=m;j++) if(f[j]<f[j-w[i]]+v[i]) f[j]=f[j-w[i]]+v[i]; } if(f[m]>0) printf("%lld\n",f[m]); else printf("NO\n"); } return 0; }
- 1
信息
- ID
- 773
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者