P1734 最大約數和

2021-10-06 05:31:19 字數 568 閱讀 2215

選取和不超過s的若干個不同的正整數,使得所有數的約數(不含它本身)之和最大。

輸入乙個正整數s。

輸出最大的約數之和。

輸入 #1複製

11
輸出 #1複製

9
樣例說明

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

資料規模

s<=1000
【題目分析】我們可以預先處理出來所有數的約數的和,而這個和對應著我們揹包的價值,那麼每個數就對應我們揹包的體積,因為所有的數不能相同,所以這個問題本質上就是乙個01揹包的問題。在預處理約數和的時候,我們可以列舉小於n的所有數i,然後在所有i*j<=n的數中加上i,這樣就預處理出來所有數的約數之和了。 

【**實現】

#includeusing namespace std;

const int n=1010;

int f[n],w[n];

int main()

洛谷P1734 最大約數和

選取和不超過s的若干個不同的正整數,使得所有數的約數 不含它本身 之和最大。輸入格式 輸入乙個正整數s。輸出格式 輸出最大的約數之和。輸入樣例 1 複製11 輸出樣例 1 複製9 樣例說明 取數字4和6,可以得到最大值 1 2 1 2 3 9。資料規模 s 1000 01揹包,預處理出每個數的約數和...

洛谷P1734 最大約數和 題解

本蒟蒻的第一篇題解,這是一道十足的水題。題意如下 選取和不超過s的若干個不同的正整數,使得所有數的約數 不含它本身 之和最大。問題分析 我們可以把這道題看做乙個01揹包問題 翻譯一下這個問題 有乙個大小為 s 的揹包,有 s 個物品,第 i 個物品的體積為 i,價值為i的因數之和,現在求如何放置物品...

最大約數和

題目 題目描述 選取和不超過s的若干個不同的正整數,使得所有數的約數 不含它本身 之和最大。輸入格式 輸入乙個正整數s。輸出格式 輸出最大的約數之和。輸入輸出樣例 輸入 1 輸出 1 說明 提示 樣例說明 取數字4和6,可以得到最大值 1 2 1 2 3 9。資料規模 s 1000 思路 把它當做0...