P1679 神奇的四次方數 完全揹包

2021-09-28 17:18:43 字數 1123 閱讀 4140

傳送門

思路:先打表預處理,將1-20所有數的四次方全部列舉,然後將n做為容量,每個數的四次方作為價值。

完全揹包:dp[i]是當容量是i時,當前揹包中物體的個數。因為是要求最小,所以先預處理,將個數初始化最大。

/**

* from:

* qingdao agricultural university

* created by xiangwangacmer

* date : 2019-10-16-19.59.14

* talk is cheap.show me your code.

*/#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const ll maxn =

1e6+5;

const ll minn =

1e9+5;

const ll mod =

1000000007

;const

int inf =

0x3f3f3f3f

;const

long

long limit =

4294967295ll

;vector<

int>v[maxn]

;int dp[maxn]

;vector<

int>g[maxn]

;bool row[maxn]

, col[maxn]

;bool flag =0;

queue<

int>q;

int w[maxn]

;int n;

int vis[maxn]

;int count =

100100

;int

main()

洛谷P1679 神奇的四次方數(完全揹包)

在你的幫助下,v神終於幫同學找到了最合適的大學,接下來就要通知同學了。在班級裡負責聯絡網的是dm同學,於是v神便找到了dm同學,可dm同學正在忙於研究一道有趣的數學題,為了請dm出山,v神只好請你幫忙解決這道題了。題目描述 將乙個整數m分解為n個四次方數的和的形式,要求n最小。例如,m 706,70...

完全揹包 P1679 神奇的四次方數

一看這就是個完全揹包 m最多不會超過18 4,所以我們把x 4用陣列存起來,然後考慮如何填滿m,注意存到18 4,不然會像我一樣re。那麼問題就轉化成完全揹包問題,因為乙個四次方數可以用多次 設計狀態 f i j 表示前 i 個數中,總和不超過 j 的數的最少個數,然後我們降一維實現 即 f j 注...

P1679 神奇的四次方數

p1679 神奇的四次方數 用一些什麼東西組成乙個什麼東西,要求什麼東西最優,這時候要考慮揹包,不過要分析清楚是什麼型別的揹包。這題顯然是個完全揹包。include include include include include include include define inf 21474836...