/ Vijos / 讨论 / 采药 /

很奇怪啊 (ノ=Д=)ノ┻━┻

memset(d,0,sizeof(d));
for (int i=1;i<=n;++i) {
for (int j=0;j<=V;++j) {
if (j>=v[i]) d[i][j]=max(d[i-1][j],d[i-1][j-v[i]]+w[i]);
//else d[i][j]=d[i-1][j];
}
}
printf("%d\n",d[n][V]);

我把注释掉的那行恢复过来就能AC,但是注释之后只有40分,求教为什么(ノ ○ Д ○)ノ

3 条评论

  • @ 2015-08-18 02:58:32

    要不然d[i][j]就是零了呀!

  • @ 2015-08-17 17:11:18

    好像应该是d[i][j]=max(d[i][j],d[i-1][j-v[i]]+w[i])吧

  • @ 2015-08-15 12:39:19

    完整的

    int d[105][1005],n,V,v[105],w[105];

    int main() {
    memset(d,0,sizeof(d));
    scanf("%d%d",&V,&n);
    for (int i=1;i<=n;++i) {
    scanf("%d%d",&v[i],&w[i]);
    }
    for (int i=1;i<=n;++i) {
    for (int j=0;j<=V;++j) {
    if (j>=v[i]) d[i][j]=max(d[i-1][j],d[i-1][j-v[i]]+w[i]);
    else d[i][j]=d[i-1][j];
    }
    }
    printf("%d\n",d[n][V]);
    return 0;
    }

  • 1

信息

ID
1104
难度
4
分类
动态规划 | 背包 点击显示
标签
递交数
16861
已通过
6541
通过率
39%
被复制
41
上传者