原题
题目分析
初步分析
看完题目,我们可以提取题中的意思。整个过程就相当于循环枚举数列中不为零的数,每次减一,减k次。
遇到这种题目,我们首先想到用模拟的方法,按照题目的方法,写一个while循环,就可以搞定。
然而,定睛一看这道题的数据范围,k和a数组的范围都十分巨大,枚举的时间复杂度为O(k),这样做必定超时。所以,我们得另辟蹊径。
当我们再次观察题目,不难发现,在进行k次操作时
看完题目,我们可以提取题中的意思。整个过程就相当于循环枚举数列中不为零的数,每次减一,减k次。
遇到这种题目,我们首先想到用模拟的方法,按照题目的方法,写一个while循环,就可以搞定。
然而,定睛一看这道题的数据范围,k和a数组的范围都十分巨大,枚举的时间复杂度为O(k),这样做必定超时。所以,我们得另辟蹊径。
当我们再次观察题目,不难发现,在进行k次操作时