POJ Challenge消失之物

2022-08-11 07:39:13 字數 880 閱讀 1310

ftiasch 有 n 個物品, 體積分別是 w1

, w2

, ..., wn

。 由於她的疏忽, 第 i 個物品丟失了。 「要使用剩下的 n - 1 物品裝滿容積為 x 的揹包,有幾種方法呢?」 -- 這是經典的問題了。她把答案記為 count(i, x) ,想要得到所有1 <= i <= n, 1 <= x <= m的 count(i, x) **。

第1行:兩個整數 n (1 ≤ n ≤ 2 × 103) 和 m (1 ≤ m ≤ 2 × 103),物品的數量和最大的容積。

第2行: n 個整數 w1

, w2

, ..., wn

, 物品的體積。

乙個 n × m 的矩陣, count(i, x)的末位數字。

首先如果不考慮有乙個物品消失,用f陣列來記錄到第i個物品時,能達到j的重量的方案有多少,狀態轉移方程為f[i][j]=f[i-1][j-w[i]]+f[i-1][j]。求出f陣列後,然後用陣列c來表示用除去第i個物品外的所有物品,能達到j的重量的方案有多少,c[i][j]=f[n][j]-c[i][j-a[i]](c[i][j-a[i]]即其他物品加上a[i](即算上第i個物品)後能達到j的重量的方案數,減去後,剩下的就是,不用第i個物品達到j的方案數)

1 #include2 #include3

using

namespace

std;

4int a[2010],f[2010][2010],c[2010][2010];5

intmain()626

return0;

27 }

消失之物,分治

ftiasch 有 n 個物品,體積分別是 w1,w2,wn。由於她的疏忽,第 i 個物品丟失了。要使用剩下的 n 1 物品裝滿容積為 x 的揹包,有幾種方法呢?這是經典的問題了。她把答案記為 count i,x 想要得到所有1 i n,1 x m的 count i,x view code 輸入格式...

消失之物 s 題解

是不是很熟悉的開頭,哈哈,畢竟乙隻蒟蒻第一次寫題解多少有點緊張啊 本題來自hloj 1949 好了,切入正題 題面意思呢,就是給你n個物品,乙個m的揹包,接下來是w i 表示每個物品的重量,看起來很簡單,不過呢,有乙個物品丟了,你要輸出乙個 橫排的數值表示丟了第i個物品,縱列的數值表示要來填滿乙個容...

BZOJ2287消失之物

dpdpdpdpdpdpdpdp 討厭dp 這道題看起來很難 實際上也很難 思路 我們要求拿走一件物品之後的方案數,那麼肯定會涉及到不拿走的情況,那麼不拿走的情況是什麼呢?用前i件物品拼成體積j的方案數,所以我們要先預處理一下這個初始陣列f i 也就是一件都不拿走的情況 之後呢?我們考慮如何轉移拿走...