链接:https://www.luogu.org/problemnew/show/P1734

题面:

题目描述

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

输入输出格式

输入格式:

输入一个正整数S。

输出格式:

输出最大的约数之和。

输入输出样例

输入样例#1: 复制

11
输出样例#1: 复制

9

说明

样例说明

取数字4和6,可以得到最大值(1+2)+(1+2+3)=9。

数据规模

S<=1000

思路:

把这个数的因数和看成这个数的权值,那么就可以转化成一道01背包了,因为数据非常小,直接暴力预处理出每个数的因数和。

实现代码;

#include<bits/stdc++.h>
using namespace std;
const int M = 1e5+;
int a[M],dp[M],n;
void init(){
for(int i = ;i <= n;i ++)
for(int j = ;j < i;j ++)
if(i%j==) a[i] += j;
} int main()
{
cin>>n;
init();
for(int i = ;i <= n;i ++){
for(int j = n;j >= i;j --){
dp[j] = max(dp[j],dp[j-i]+a[i]);
}
}
cout<<dp[n]<<endl;
}

最新文章

  1. Dapper where Id in的解决方案
  2. 局部(或全局)设置&lt;a&gt;标签的target属性
  3. UITableViewCell重用的问题
  4. linux第4天 shell socket
  5. 1. python中的随机函数
  6. centos7 学习1 KDE配置中文
  7. linux服务之iptables与firewalld
  8. 如何选择一个 Linux Tracer (2015)
  9. 字符串匹配之boyer-Moore算法
  10. pymysql安装和使用
  11. 2019十二省联考 Round 1 &amp;&amp; 济南市市中心游记
  12. MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义
  13. 43-3-STM32的CAN外设
  14. Java语言基础问题
  15. JS跨浏览器的事件处理
  16. php---进行RSA进行非对称加密
  17. select 操作
  18. mac终端 login: login: Could not determine audit condition
  19. PyQt: eg2
  20. Oracle VM virtualBox -Centos6.4 安装后没有网解决方法

热门文章

  1. 请问如何上传带图片的word
  2. [ZJOI2009]假期的宿舍 二分图匹配匈牙利
  3. redis系列(一):安装配置
  4. c 语言延时函数
  5. sed基础
  6. codeforces#1215E. Marbles(状压dp)
  7. python数据分析与应用
  8. elasticsearch sql插件 2.4及以下版本配置
  9. Flask-login 原理
  10. Linux学习:使用 procrank 测量系统内存使用情况