问题标题: 酷町堂:2317 调兵遣将 为什么我 runtime error

0
0
已解决
黄俊博
黄俊博
资深光能
资深光能

 

2317调兵遣将

#include<iostream>
using namespace std;

int p,z,n;
long long f[110][1010][1010];
int k[110];
int r[1010];
int m[1010];

int main()
{
    cin>>p>>z>>n;
    for(int i=1;i<=p;i++)
    {
        cin>>k[i]>>r[i]>>m[i];
    }
    for(int i=1;i<=p;i++)
    {
        for(int j=z;j>=0;j--)
        {
            for(int l=n;l>=0;l--)
            {
                if(j>=r[i] && l>=m[i])
                    f[i][j][l]=max(f[i-1][j][l],f[i-1][j-r[i]][l-m[i]]+k[i]);
            }
        }
    }
    cout<<f[p][z][n];
    return 0;
}
@方亦欧 @王星河 @梁锦程 @陆麟瑞 @栾峻岩 @蒋志航@贾文卓


0
已采纳
王星河
王星河
资深光能
资深光能

for(int i=1;i<=p;i++)
    for(int j=z;j>=r[i];j--)
        for(int l=n;l>=m[i];l--)
            f[j][l]=max(f[j][l],f[j-r[i]][l-m[i]]+k[i]);

0
王星河
王星河
资深光能
资深光能

f太大了

用滚动数组转成二维数组

0
0
我要回答