一看這就是個完全揹包
m最多不會超過18^4,所以我們把x^4用陣列存起來,然後考慮如何填滿m,注意存到18^4,不然會像我一樣re。。。
那麼問題就轉化成完全揹包問題,因為乙個四次方數可以用多次
設計狀態:
f [ i ] [ j ] 表示前 i 個數中,總和不超過 j ,的數的最少個數,
然後我們降一維實現**即 f [ j ]
注意初始化 f[0]=0
#include#include#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long
ll;inline
intread()
intm,n;
int s[20],f[100010
];int
main()
printf(
"%d\n
",f[m]);
return0;
}
四平方和定理說明每個正整數均可表示為n個整數的平方和。(n<=4)
雖然我也不知道這東西有啥用qwq
P1679 神奇的四次方數 完全揹包
傳送門 思路 先打表預處理,將1 20所有數的四次方全部列舉,然後將n做為容量,每個數的四次方作為價值。完全揹包 dp i 是當容量是i時,當前揹包中物體的個數。因為是要求最小,所以先預處理,將個數初始化最大。from qingdao agricultural university created ...
洛谷P1679 神奇的四次方數(完全揹包)
在你的幫助下,v神終於幫同學找到了最合適的大學,接下來就要通知同學了。在班級裡負責聯絡網的是dm同學,於是v神便找到了dm同學,可dm同學正在忙於研究一道有趣的數學題,為了請dm出山,v神只好請你幫忙解決這道題了。題目描述 將乙個整數m分解為n個四次方數的和的形式,要求n最小。例如,m 706,70...
P1679 神奇的四次方數
p1679 神奇的四次方數 用一些什麼東西組成乙個什麼東西,要求什麼東西最優,這時候要考慮揹包,不過要分析清楚是什麼型別的揹包。這題顯然是個完全揹包。include include include include include include include define inf 21474836...