我得到了一组0
和1
作为输入。 0
表示失败,而1表示测试中学生的成功。现在,主要考试机构可以从该数组中选取任何连续的学生序列,并查看通过或未通过测试的学生人数。如果
#0 > #1 + k -(1)
已知k
(输入参数)的情况下,学校的注册将终止。
学校显然不想要它。因此,我们必须将0
更改为1
,以便无论采用什么集合,条件(1)都不会成立。将第i个位置的0
更改为1
会使学校2^i
付出代价,我们必须使总成本最小化。如何在O(n)或(nlogn)时间中找到最低成本? (n =输入数组的长度)
示例:如果学生人数为4,则可能的集合为:
{1、2、3、4、12、23、34、123、234、1234}
如果输入为00000且k = 2,我们可以将其更改为10100,从而使成本仅为10。
如果输入为0110且k = 0,则必须将其更改为1111,从而使成本为18。
如果输入为0110且k = 1,则无需更改任何内容。因此,成本= 0。