```cpp
dp[j]=max(dp[j],dp[jv[i]]+w[i]);
``
你这个max里面dp[j]后面是不是少打了什么
by ChickenDrinkingMilk @ 2022-02-19 11:26:02
@[Tidyhitler](/user/661144) dp改为一维数组
by int233 @ 2022-02-19 11:30:20
@[刘煜周](/user/494192)
麻烦您说详细一点
by Tidyhitler @ 2022-02-19 11:42:31
@[int233](/user/333855) 谢谢,在哪输出?
by Tidyhitler @ 2022-02-19 11:43:40
好了;
```c
#include<bits/stdc++.h>
using namespace std;
int num(int n){
int sum=0;
for(int i=1;i<n;i++){
if(n%i==0){
sum+=i;
}
}
return sum;
}
int v[1100],w[1100],dp[1100];
int main(){
int s;
cin>>s;
for(int i=1;i<=s;i++){
w[i]=num(i);
}
for(int i=1;i<=s;i++){
for(int j=s;j>=i;j--){
dp[j]=max(dp[j],dp[j-i]+w[i]);
}
}
cout<<dp[s];
return 0;
}
```
by Tidyhitler @ 2022-02-20 10:28:59