牛客算法竞赛入门课第一节习题Part5(糖糖~数学考试)

糖糖别胡说,我真的不是签到题目

思路:

每只糖糖存活的条件是后面没有另外一组的比他大的糖糖,所以我们可以从后向前维护每一组糖糖的最大值就好了。

加上发功的话就先把最后的能力值算出来,再倒着维护一个最大值就好。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43887577&returnHomeType=1&uid=115850812

奇♂妙拆分

题意:

问n最多可以被拆分成多少个不同的自然数,使得该自然数的乘积等于n

思路:

从最小的因子开始枚举即可,因为数据的原因,可以直接枚举到n,但一般这种题都是枚举因子枚举到sqrt(n),这时要注意边界的处理。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43887612&returnHomeType=1&uid=115850812

数学考试

题意:

给定一个数列,要求选两个不连续的长度为k的区间使得和最大。

思路:

数据范围是2e5,肯定是要用前缀和处理一下。

然后我们可以维护前面长度为k的区间的最大值,枚举第二个区间的起点,取max即可。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43817334&returnHomeType=1&uid=115850812