第14章 三十分? 这个学霸还在叠数值
“在座的都有一定基础,我就不绕弯子了。”
胡云程一到讲台上,就像变了个人似得,双手撑著桌面,鹰视狼顾,
“信息学竞赛,翻来覆去就考察两个东西——算法,和编程。前者是解决问题的思路,后者是把思路变成机器能执行的步骤。两个环节,少了哪个都不行。”
他抬起手,在键盘上敲了一下。
“现在,看你们面前的屏幕,思考这道题。”
李林的目光落在屏幕上,题目不长,但信息量不小:
“假设你是一位很棒的家长,想要给你的孩子们一些小饼乾。但是,每个孩子最多只能给一块饼乾。”
“对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼乾的最小尺寸;並且每块饼乾j,都有一个尺寸s[j]。如果s[j]>=g[i],我们可以將这个饼乾j分配给孩子i,这个孩子会得到满足。你的目標是满足儘可能多的孩子,並输出这个最大数值。”
单看文字描述,脑子一时半会儿还有点绕。
但题目下面配了两组示例,李林扫了一眼,大概就懂了。
“示例:输入为g=[1,2,3],s=[1,1]时;输出应该为1。”
“解释:你有三个孩子和两块小饼乾,3个孩子的胃口值分別是:1,2,3。虽然你有两块小饼乾,由於他们的尺寸都是 1,你只能让胃口值是1的孩子满足。所以你应该输出1。”
道理不难懂。
但真要让他从头开始想,果然还是有点头痛。
算法的本质,说到底就是数学啊。
而他跟数学的关係,就算比作“美苏冷战”,都会得到“没那么铁”的评价。
“融合。”
李林在心中默念。
【高中数学+高中语文】→【获得效果“分析lv1”】
相性临时提升的李林,也终於开始思考。
然而,才过了不到一分钟,胡云程的声音就从讲台上传了下来。
“这道题该用什么算法?”
李林有些诧异地抬起头。
这么快?
他连思路都还没捋出来。
“贪心算法——”
前排已经有几个同学脱口而出。
胡云程见状,笑了起来,
“很好。一看就是刷过题的,看一眼就知道答案了。”
他隨手指了指刚才抢答的一个男生,
“你,解释一下为什么要用贪心算法。”
那男生颇有自信地起身,声音洪亮道,
“贪心算法的核心思想是,在每一阶段都选择当前看起来最优的解,通过堆积局部最优来达到全局最优。具体到这道题,我们应该先把给出的两个数组排序,然后——”
“停。”
然而,胡云程毫不留情地打断了他,
“我问的是,『为什么』要用贪心算法。”
“额——?”
男生被截断了话头,脸上的表情有些僵硬,
“因为……额,因为……”
“因为什么?因为答案上是这么写的?因为你刷过一模一样的题,所以直接把答案背出来了?”
胡云程一步步逼近,语速越来越快,
“你刚才还说贪心是通过堆积局部最优解达到全局最优,那么一定能达到全局最优吗?是所有问题都能用贪心算法吗?”
“不……不是。”
“那这道题凭什么就能用?”
“……”
本章未完,点击下一页继续阅读。(1 / 2)