2 条题解
-
11
202607gj06周子祥 (周子祥) LV 9 @ 2026-07-24 09:37:46
#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; } -
0@ 2026-07-24 09:44:45
#include<bits/stdc++.h> using namespace std; const int N=1005; int n,V,w[N],v[N]; int dp[1005]; int pdss(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]=pdss(i); } for(int i=1;i<=n;i++) for(int j=V;j>=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+v[i]); cout<<dp[V]; return 0; }
- 1
信息
- ID
- 1678
- 难度
- 5
- 分类
- (无)
- 标签
- 递交数
- 78
- 已通过
- 27
- 通过率
- 35%
- 被复制
- 4
- 上传者