- 最大约数和
- @ 2026-07-25 14:47:17
#include<bits/stdc++.h>
using namespace std;
int const N=3505;
int n,V,w[N],v[N];
int dp[N][13005];
int k(int a)
{
int sum=0;
for(int j=1;j<a;j++)
{
if(a%j==0)sum+=j;
}
return sum;
}
int main()
{
cin>>n;
V=n;
for(int i=1;i<=n;i++)
{
w[i]=i;
v[i]=k(i);
}
for(int i=1;i<=n;i++)
for(int j=1;j<=V;j++)
{
if(w[i]>j)dp[i][j]=dp[i-1][j];
else dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
}
cout<<dp[n][V];
return 0;
}
3 条评论
-
202607zj09王宇浩 (王宇浩) LV 8 @ 2026-07-26 13:02:41
OK
-
@ 2026-07-25 15:54:25
@王宇浩
-
@ 2026-07-25 14:50:49
对的
- 1
信息
- ID
- 1678
- 难度
- 5
- 分类
- (无)
- 标签
- 递交数
- 78
- 已通过
- 27
- 通过率
- 35%
- 被复制
- 4
- 上传者