问题描述
给定 n 个解毒剂 a1,a2,. . . ,你必须找到解毒的方法。要测试单个解毒剂,您可以尝试使用一定数量的单位进行测试(用 n_j 个单位对解毒剂 a_i 进行测试是 O(1),n_j 是正整数)。 你知道k个单位的解毒剂可以解毒,但你必须找到使用最少单位数的解毒剂。
描述一个在平均值中使用 Θ(n+logn*logk) 的随机算法,并证明时间复杂度。
我想到的算法如下: 在每一步,我们随机选择一种治疗方法,并检查它是否是 比目前最好的(这样需要更少的单位来工作 相对于之前最好的治疗),如果更好,我们做一个 二分查找以找到所需的最小单位数 新的治疗方法,并更新最好的。
现在我需要证明我进行二分查找的治愈次数平均是log(n),换句话说,证明第i个治愈被处理的概率是1/log(n)>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)