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