码迷,mamicode.com
首页 > 其他好文 > 详细

[Luogu] P1374 最大约数和

时间:2018-02-27 23:20:31      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:背包   amp   std   ons   ++i   之间   直接   inline   https   

Luogu P1734 最大约数和


传送门

读入S,预处理\(1\)\(S\)之间所有数的约数和,然后直接跑一个\(O(n^2)\)\(01\)背包即可。

#include <algorithm>
#include <cstdio>
const int MAXN = 1001;
int n, rslt;
int c[MAXN], f[MAXN];
inline int solve(int now) {
    int ans(0);
    for (int i = 1; i < now; ++i)
        if(!(now % i)) ans = ans + i;
    return ans;
}
int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) 
        c[i] = solve(i);
    for (int i = 1; i <= n; ++i)
        for (int j = n; j >= i; --j)
            f[j] = std::max(f[j], f[j - i] + c[i]), rslt = std::max(rslt, f[j]);
    printf("%d\n", f[n]);
    return 0;
}

[Luogu] P1374 最大约数和

标签:背包   amp   std   ons   ++i   之间   直接   inline   https   

原文地址:https://www.cnblogs.com/manziqi/p/8481126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!