zoukankan      html  css  js  c++  java
  • 最大约数和-DP

    Description

      选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大。

    Input

      输入一个正整数S。

    Output

      输出最大的约数之和。

    Sample Input

    11

    Sample Output

    9


    思路

    • 预处理1~s的因数和

    • f[i]=max{f[k]+f[i-k]}


    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    using namespace std;
    int f[10001];
    int main()
    {
    	int s; scanf("%d",&s);
    	for(int i=2;i<=s;i++)
    		for(int j=1;j<=i/2;j++)
    			if(i%j==0) f[i]+=j;
    	for(int i=2;i<=s;i++)
    		for(int k=1;k<=i/2;k++)
    			f[i]=max(f[i],f[k]+f[i-k]);
    	printf("%d",f[s]);
    	return 0;
    }
    
  • 相关阅读:
    高级选择器
    CSS的选择器
    HTML——标签
    HTML
    并发编程——协程
    并发编程——线程(二)
    并发编程——线程
    4.栈
    3.链表
    2.顺序表
  • 原文地址:https://www.cnblogs.com/wuwendongxi/p/13255454.html
Copyright © 2011-2022 走看看