给定深井的深度 D 和垃圾的数量 G.
XLL想把垃圾堆起来,等到堆得与井同样高时,她就能逃出井外了。
XLL可以通过吃垃圾来维持自己的生命。
每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费XLL的时间。
给定每个垃圾扔下的时间 ti,高度 hi,可供维持 fi 小时的生命。
XLL在 0 时刻位于井底,要保证任何时刻的生命储备时长(生命值) >0,初始时生命值为 10 小时。
求最早何时爬出,或最长存活多久。
2≤D,G≤100,1≤t≤1000,1≤h≤25,1≤f≤30.
背包。
井 ⇒ 背包大小,垃圾高度 ⇒ 物品重量,维持生命的时长 ⇒ 价值。
对物品按 ti 升序排序,顺序加入背包。
设 g[i][j] 表示处理完前 i 件物品后,高度为 j 时的最大生命值,有转移:
gi,j=max{gi−1,j+f[i]gi−1,j−h[i]
普通的 0/1 背包即可解决。