问题标题: 酷町堂:3909 摘苹果

0
0
已解决
舒航
舒航
新手守护
新手守护

#include<iostream>
#include<cmath>
using namespace std;
int t,m;
int c[10010],w[10010];
int f[10001][10010];
int main()
{
    cin>>m>>t;
    for(int i=1;i<=m;i++)
        cin>>c[i]>>w[i];
    for(int i=1;i<=m;i++)
    {
        for(int j=0;j<=t;j++)
            if(j>=c[i])
                f[i][j]=max(f[i-1][j],f[i-1][j-c[i]]+w[i]);
            else f[i][j]=f[i-1][j];
    }

    cout<<f[m][t];
    return 0;
}

哪错了


0
已采纳
项依凡
项依凡
初级光能
初级光能

你只要把所有的二维数组的第一个数去掉,改为一位的就行了,并且把第一个循环改为从后往前嗖就行了,因为当前只看上面的和左边的

0
0
0
完颜傲伦
完颜傲伦
资深守护
资深守护

要降维才能对,数据范围很大

 

我要回答