Problem#
題目給你一個整數陣列 people[i]
是每個人的重量,今天要搭船過河,每條船最多載重 limit
,一艘船最多載兩個人,問你最少需要幾條船。
1 <= people.length <= 5 * 10^4
1 <= people[i] <= limit <= 3 * 10^4
有 Alice 和 Bob 比賽射箭,每個人有 numArrows
支箭 ,一人各射 12 局,規則是: 如果第 $i$ 局的分數比另一個人大,$A_i \ge B_i$ 則 A 得到 $i$ 分。
今天 Alice 先射完了,他的結果是 [aliceArrows_0, aliceArrows_11]
,問你 Bob 的結果長怎樣,他的得分才會是最大的
這題有兩種做法: 爆搜和 DP。
之所以可以爆搜是因為局數 只有 12 局,所以能在 $\mathcal{O}(2^12)$ 內做完,bitwise 枚舉也是一樣。DP 則是把箭數當重量、得分當價值的話,問題就變成了 0/1 背包 $\mathcal{O}(nm), n=\text{12}, m=10^5$