[Luogu] P1374 最大约数和

Posted MZQ667

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Luogu] P1374 最大约数和相关的知识,希望对你有一定的参考价值。

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 最大约数和的主要内容,如果未能解决你的问题,请参考以下文章

斐波那契公约数(luogu 1306)

luogu2714 四元组统计 莫比乌斯反演 组合数

luogu P3327 [SDOI2015]约数个数和 莫比乌斯反演

[luogu5176] 公约数

luogu P1072 Hankson 的趣味题

Luogu P1306 斐波那契公约数