字节跳动19春招研发笔试
前言
这道题否定了我的智力.
题意
n 个人 a 1 , a 2 . . . a n a_1, a_2 ... a_n a1,a2...an 过河, 每个人 a i a_i ai 都有一个 w i w_i wi
只有一艘船
每次过河船上最多装3人, 最少装2人
每次过河的时间是船上 w i w_i wi 的最大值
求最短过河时间.
我的思路 (错误思路)
因为每次送完3个人到对岸之后, 要回来两个人摆渡, 那么我就选择 w i w_i wi 最小的两个人作为摆渡人, 这样就使得每次回来的代价最小.
概括起来就是:
最轻的两个人永远在船上, 其他人每次过去一个.
反例
上述思路的反例是, 如果 w = { 1 , 1 , 1 , 1 , 100 , 100 , 100 } w = \{1, 1, 1, 1, 100, 100, 100\} w={ 1,1,1