大家好,本来今天想写一篇算法和数据结构的。但是看了一眼计划,发现基本上大部分基础的内容都已经讲过了。接下去就是一些竞赛相关的算法了,刚好最近是校招季,所以写一点笔试题的题解,也许对大家的招聘有点用。
这一次选了拼多多的校招笔试题其中的一题,在写文章的时候还看到了小马智行的。也就是那个楼教主创办的著名的pony.ai,但是我点进去看了一眼,发现大部分都是acm竞赛题的风格,难度对于普通学生而言有些高了。所以没有采纳,改选了拼多多的试题。
题意
给定一个整数N,代表N个盒子。第i个盒子当中有i个球。
我们可以选定一个N以内的自然数X,多多鸡会把所有盒中小球数量大于X的盒子减少X个球。现在想要用最少的步骤将所有盒子的球清空,请问最少需要多少次操作?
样例
第一行输入一个整数t,表示测试组数。
对于每一行都输入一个整数N()
要求对于每组数据输出一个整数作为结果。
分析
我们仔细分析一下,会发现这题的难点有两个。第一个是这个N的范围太大了,对我们的复杂度限制得很高。第二点是盒子当中球的数量是动态的&#