洛谷P2347 砝碼稱重 某一年noip提高組原題

2022-03-18 00:50:47 字數 731 閱讀 9039

可以轉化為01揹包求方案數的問題,dp陣列f表示第幾個砝碼能稱出的重量,可壓縮至一維 轉移方程為f(i,j)+=f(i-1,j-w[i]) 當前我們可以稱出的重量必定是由之前的砝碼重量轉移過來的

#includeusing

namespace

std;

const

int n=550

;const

int maxn=1e6+7

;int

f[maxn];

inta[maxn];

int v[maxn];//

相當於01揹包的物品重量

int num[10]=;//

砝碼重量

intcnt;

intmaxsum;

intans;

intmain()

}for(int i=1;i<=cnt;i++)

f[0]=1;//

0也是一種方案,初始狀態

for(int i=1;i<=cnt;i++)//

01揹包

}for(int i=1;i<=maxsum;i++)//

統計方案個數

}printf(

"total=%d

",ans);

return0;

}

洛谷 P2347 砝碼稱重

時間限制1.00s 記憶體限制125.00mb 設有1g 2g 3g 5g 10g 20g的砝碼各若干枚 其總重 1000 輸入 1 1 1 0 0 0 0 輸出 1 total 3 方法一 sign j a i 1 思想類似於裝箱問題 include using namespace std con...

洛谷P2347 砝碼稱重

設有1g1g1g 2g2g2g 3g3g3g 5g5g5g 10g10g10g 20g20g20g的砝碼各若干枚 其總重 1000 le 1000 1000 輸入格式 輸入方式 a1,a2,a3,a4,a5,a6a 1 a 2 a 3 a 4 a 5 a 6a1 a2 a3 a4 a5 a6 表示1...

P2347 砝碼稱重

題目入口 p2347 砝碼稱重 寫在前面 本題是乙個簡單的 多重揹包 不用二進位制優化也毫無關係 甚至據說六個迴圈都能過 逃 如何記錄方案數 if dp i i ret 解釋來說就是dp當前重量有 最優 方案說明此重量可實現,那麼結果加一 使用模版 模版 揹包問題彙總 多重揹包模版 二進位制優化 i...