为什么我用二维数组就ac不了,用一维数组就可以?
查看原帖
为什么我用二维数组就ac不了,用一维数组就可以?
1527048
ClearViper3楼主2024/12/2 09:03

还是说我二维的代码有问题呢代码如下:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int S;
    cin >> S;
    vector<int> sum(S + 1);
    sum[0] = 0;
    for(int i = 1; i <= S; i++)
    {
        for(int j = 1; j < i ; j++)
        {
            if(i % j == 0)
            {
                sum[i] += j;
            }
        }
    }
    vector<vector<int>> dp(S + 1,vector<int>(S + 1));
    for(int i = 2; i <= S; i++)
    {
        for(int j = 1; j <= S; j++)
        {
            if(j >= i)
            dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - i] + sum[i]);
        }
    }
    cout << dp[S][S];
    return 0;
}

2024/12/2 09:03
加载中...