第136章 不,你的这条才是第1/3段

投票推荐 加入书签 章节错误?快速报错

  在配对的过程中,徐佑也考虑到了,2和5出现的数量问题。

  无疑,2的个数一定是多于5的个数的。

  这样一来,问题就变成了,统计阶乘数里有多少個5这个因子。

  “等一下……像25、125这样的数字,里面其实是包含不止一个5的因子的。”

  徐佑很快注意到了这一重要的问题。

  如果忽略这个情况,那最后的结果就会出现错误。

  最终,徐佑在电脑上,编辑出了短短的五行代码,并给彭俊发送了过去。

  “不错啊!”

  在看到徐佑发来的代码后,彭俊也不禁对徐佑的解答表示着肯定。

  虽然这道题不算什么难题。

  但能在几分钟的时间内,给出如此漂亮的答案。

  彭俊知道,大部分计算机专业的本科生,也是未必能做到的。

  “这孩子,应该是自己做出来的吧。”

  彭俊相信,既然徐佑向自己寻求题目,按理说肯定不会去搜索答案的。

  但为了进一步确定徐佑的能力,彭俊决定,再给徐佑出一个难题,还是那种网上根本搜不到的题目。

  “不错,做得很好,代码也很简洁。再给你发一道难度更大的题目吧。”

  这一次,彭俊将一道自己改编过的题目,向徐佑发送了过去。

  看着这道新的题目,徐佑很快陷入到思考之中。

  “给出k个有序的数组:L1,L2,……,Lk,每一个长度为n,可以对该数组进行线性时间的预处理。然后回答如下询问:给出x,回答每个数组中第一个小于x的元素是什么?”

  这一次,徐佑也确实感到了,题目难度的提升。

  要是徐佑这些天没有学完这些门课程的话,估计是连题目都看不懂的。

  徐佑首先想到的方法,是对于每个数组二分查找。

  但这样的话,复杂度会非常高,达到了O(klogn)。

  很快,徐佑便找到了另外的一个思路。

  “如果用Fractional-Cascading的话,就可以将复杂度降低到O(k+logn)了。”

  所谓的Fractional-Cascading,也就是分散层叠算法,可以对经典分块问题进行大大的优化。

  按照这个思路,徐佑重新进行算法的构思,并很快整理出了一套全新的方案。

  “这样一来,只要第一次使用二分,之后每次都是常数查找就可以了。”

  完成了算法数据结构的编辑后,徐佑将自己的解法发送给了彭俊。

  看见徐佑的答案,彭俊又是不禁连连点头。

  “这小子,还真不是在跟我开玩笑。能做到这个水平,绝对是把这些课程都学透了的。”

  这个时候,彭俊也不得不对徐佑的学习能力盛赞了起来。

  彭俊并不知道,徐佑到底是如何在这短短的十天时间里,把几乎整个计算机本科阶段的知识都学习完毕,同时很好的掌握/>

本章未完,请点击下一段进行阅读!

章节目录