if you RE?
查看原帖
if you RE?
1199889
IAKpoki楼主2024/7/18 17:03
#include<bits/stdc++.h>
using namespace std;
int v[1010];
void init(){
	for(int i=1;i<1010;i++){
		for(int j=1;j<i;j++){
			if(i%j==0){
				v[i]+=j; 
			}
		}
		
	}
	
}
int dp[1010][1010];
int main(){
	int n;
	cin>>n;
	init();
	for(int i=1;i<=n;i++){
		for(int j=0;j<=n;j++){
			if(j>=i){
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-i]+v[i]);
			}else{
				dp[i][j]=dp[i-1][j];
			}
		}
	}
	cout<<dp[n][n];
} 
2024/7/18 17:03
加载中...