20pts,求调
查看原帖
20pts,求调
890623
Mars_Xiemengyang楼主2025/2/5 20:43
#include<bits/stdc++.h>
using namespace std;
int w[1005],v[1005],dp[1005];
int yueshuhe(int n){
    int sum=0;
    for(int i=1;i<n;i++){
        if(n%i==0) sum+=i;
    }
    return sum;
}
int main(){
    int n;
    cin>>n;
    w[1]=1;
    for(int i=2;i<=n;i++){
        v[i]=yueshuhe(i);
        w[i]=i;
    }
    for(int l=1;l<=n;l++){
        for(int i=1;i<=n;i++){
            for(int j=l;j>=w[i];j--){
                dp[i]=max(dp[i],dp[i-w[i]]+v[i]);
            }
        }
    }
    cout<<dp[n];
    return 0;
}
2025/2/5 20:43
加载中...