导航菜单
首页 >  算法基础期末考试试题  > 算法基础(顾乃杰)

算法基础(顾乃杰)

从一个退役OI选手的角度评一下老师的课,顺便提出一点建议,如果能看到希望斟酌一下。

 

顾老师的课很容易让人看出老师更像是研究数学的,但不像是专门研究算法的。

本节课上有那么几个重点,可以分论一下:

1)DP,老师侧重从具体的例子讲DP,但是讲的例子未免太少,也并不太具有代表性(虽然是算法导论原文的例子,大概是钢条切割、最优查找树、矩阵链乘,涉及简单的背包问题但是没细讲算法)。给人听来,老师侧重于让我们理解老版本lrj黑书(我也没细读)上强调的三大点中的最优子结构。这里老师讲的是很清楚的,大家基本都从中学到了。

但是老师讲DP的硬伤是没有细讲:对于一个问题,如何设计状态和转移!

因此老师讲完DP给人的感觉是,大家明白了对于DP怎么执行;但是如果给大家一道DP题目,如何看出是DP、如何设计状态、怎么规划状态的转移这三大问题大家还是比较吃力。至于怎么优化一道转移方程,这个要求有点高了,倒不是必须。

包括01背包问题国内一代人的DP启蒙,这么经典的例子不应该不细讲,希望以后能加强……(相信同行都听到过,各种大佬对着和背包没什么关系的题目强行说“这是一个xxx背包要这么去转移”,关键是大家还都听能明白什么意思)

另外,老师并不是特别强调状态转移方程,虽然许多选手心中都有“DP=状态转移方程”的思想,但是后来看来这样的想法未免太过于机械形而上,老师这方面还是值得肯定的。不过如果是为了让新人加强认识,那么强调一下未尝不可。

 

2)排序算法

几大排序算法老师讲的还是比较清楚的,而且从中可以学到很多数学知识,这点很赞。

高中大家都认为学OI只需要初等数论啊代数学啊这些离散的,但是分析学毕竟还是顶。相信大家做题做到过按照n^(1/3)分块(考个基本不等式)的那种毒瘤题。当时王小云教授在科大讲座时专门提到过一个算法用一些分析学的不等式优化到看起来像一个n的无理数次方的复杂度,然后一个密码算法就被破解了……希望大家学算法也不要和笔者一样放弃分析学。

 

3)高级数据结构

感觉老师依然和许多人一样过于死磕如何实现上。老师上课强调“注意邻接表里面存节点的序号而不是节点的名称”的时候就很明显。我倒是认为这一点不太需要强调,因为编程者只要认识清楚数据结构的逻辑结构就不至于犯这种错误。强调这一点,说明老师还是有点拘泥在物理结构了,但是数据结构更重要的应该在于逻辑结构,也就是数据的排布。若非这样老师也不会犯“几叉哈夫曼树用几叉堆来实现”的无心之过。

不过例外也有,比如关于排序算法中cache的影响等。

值得一提的是,如果各位大佬高中的时候用splay或者treap逃平衡树的课,那么课前最好还是背一下红黑树的板子,多年不打实现起来还是有点麻烦的。

数据结构的扩展没太细讲,只讲例子,也没有太细讲原理。无可厚非,毕竟这个真挺难,对新人不友好。

 

4)并查集

并查集这么经典简单而又作用巨大的基础数据结构居然要拖堂讲,而且不想听的可以去先吃饭……我直接迷惑。

希望下学期可以正式一点讲这个。

 

5)FFT

老师讲的很好。谁说学复变对OI没用的?

 

6)分治

老生常谈了,比较中规中矩。

 

7)实验

????????

震撼一整年。。。。。

算法课为什么要弄的跟大雾实验一样。。。。。感觉就是提升学生的打字量而不是代码量

个人觉得算法课还是应该注重怎么运用算法解决问题的,重复一个已知算法的问题意义不太大。

不过这可能是老师个人理解和我们不一样,但强烈建议下学期改一下,出点题让大家设计一下算法,而不是在那里重复已知的。

 

8)讲课思想

老师讲后面串匹配的时候,可以看到老师眼睛里是有光的。

老师也承认过,毕竟这节课是算法“基础”,不适合讲太多超越基础的东西。

但是听课的时候还是觉得比自己初学的时候讲得还是水了一点,这里希望老师把控一下。

其实大家在数据结构课上,已经接受了一些基础算法的普及,大三学生在算法基础课上完全可以接受更难一些的教学,但是老师还是没有放得太开。

私以为,顾老师这节课的特点更重在清楚地介绍算法,但是没有细讲如何应用算法、算法之间怎么组合。

老师可能认为这才是基础,但是对于大三计科学生来说我认为更该强调后者。​

提出一点建议:以后讲课的时候,应该多问这样的问题,不给提前出具体解法,让学生思考一下,如何用这个单元学习的知识来解、如何结合前几个单元的知识来解

应该让学生养成这样的一种反射:这样的问题让人嗅到一股应该用这个算法/数据结构的味道。

 

9)隔壁老师

批评一下隔壁谭/李老师的课,击碎了我上算法课养老的梦想。完全就是高中教练吧!

一些强校高中教练都明白,对于高中竞赛生,只要教练能做好管理,保证学生的练习,那么教练本人的知识水平不需要太过硬。这也是国内真正讲知识的老师基本都是noiAu大学生的情况。

但是毕竟本科教学不是养竞赛生。有同学在隔壁上课,用的oj给看了一下每期题目。这倒好,大量早五到十年联赛原题、甚至后面还有一些简单的省选题(作出某题后上网一查JSOI2010)。。感觉不太适合没经过训练的本科学生吧。。

两个班老师都很极端的样子……希望隔壁老师能稍微收点神通,而且这么大的非水题量需给新人要多大的讲解成本啊。

也希望顾老师可以借鉴一下隔壁的一些思想,一些经典的赛题让同学们思考一下挺不错的。算法是充满灵感的碰撞,有些题目让大家脑子里能叮那么一下,有些题目的做法让大家觉得有点意外但又自然而然水到渠成,敲起代码和写诗一样多好。

 

10)好像还有图论?

这里课上讲的不多。老师本人还有意愿讲网络流的……有多少人还能默个dinic和isap的板子啊,况且网络流重在建模,这是非常技巧性又有点套路的东西,老师还是断了这个念头吧。

其他地方讲的不比数据结构课上超前太多。希望以后讲一下tarjan的几个经典算法。当时在计科数据结构蹭课的时候记得听过讲tarjan割点的,大家应该能接受。另外最短路觉得可以普及一下SPFA,毕竟还是国人发明的,老师本人也是比较红专的。

 

11)数学

别想了苦逼的数论选手,顾老师讲过学数论是重要的但是就在某个题目里面说了一下用GCD,其他基本就是分析学了。

 

12)其他建议

老师脾气有点暴……在考试收卷子的时候吼过助教挺多次……希望还是冷静点。

考研真题和传说中的面试题真挺水的,而且容易让大家有点陷入一种强调小技巧的境地,希望以后不要强推这个了,有这功夫细一点讲两年的Day1T2这些给大家也不错啊。

希望老师上课讲的更放得开一些,毕竟真东西讲多了,课就不会水了,没人有心思在报告字数和作业美观上卷了,课的风评自然也会清正。感觉作业展示比较吃香的范本还是能闻到一股卷味,提出一些精妙思路的却没怎么重视到,这样这节课的活力就有点受挫了。

 

------------------------------------------------

讲一下期末题目

基础的选择填空,不会太难,有点数学题。

算法复现,考试时间基本花在这个上面。老生常谈的手算DP/最短路/红黑树操作,记得细心一点。

算法设计有两题

1.Z上给定n包括在[1,100]内的闭区间,求最小的整数k,使得k不被任何一个区间包括。

没啥好说的,给个思路:O(1)区间加,O(n)统计的数据结构就能解决这个题目,因此用差分序列就行,时空都是O(n)。(考试的时候区间加下表都少写了1,我有罪)

2.有向图上,每个节点有标号,对i属于1-n,求min(i)为节点i可以访问到的编号最小的点的编号。

老师给的思路是两遍dfs,第二遍和第一遍反着来,就能按顺序统计出来,不过当时我也有点听蒙蔽了。

这里给一个思路:

如果这是张没有环的有向图,那么解法显然,按照拓扑序递推就行;

但是题目没有给无环图的限制,那么一个自然的思路是去掉图里的环,容易想到强联通分量缩点;

然后考虑这题有个很好的性质:如果两个点在同一个强连通分量里面,那么他们的min就一定相同(设A到达mA,B到达mB,都是可到达最小的,AB又相互可达,那么A就能到达mB,因此mA和mB一定相同),然后结果就出来了。

图G先算强连通分量,缩点,缩出来一张DAG图G1。G1上每一个点都代表G上的强连通分量,统计一下每个分量里面最小的编号作为初始答案。然后在G1上直接递推就出答案了。不过此解法虽然比较自然,试卷上写代码量好像多了点。

 

------------------------------------------------

如果你是OI佬,这节课还是比较养老的,不过应该学不到什么了。

相对于大家高中重视够了算法复杂度而言,杰哥出乎意料地注意常数中科大教授教你卡常数系列

语气还是有点夸夸其谈的相信各位在各大省选中天天装弱的大佬不会反感,不过内容还不错

新人还是建议选这节课的,看起来隔壁可是地狱啊(不过也没听隔壁老师上课过)。但是千万不要认为杰哥上课讲的就够了,课后还是要自己找练习的。如果没训练过,算法设计题不能算一眼题,算上前面手算的时间,考试还是很吃紧的。

------------------------------------------------

关于小测,记住千万每天上课都要听,不然你就算知道题目也不知道这些冷门概念是个啥

会连续小测,也就是最后两节课。。。次数一定会弄够的

最后一节课本来有事需要翘课的,想起来怕是要小测就在课间休息的时候溜进去了老师没发现,结果真的小测了

------------------------------------------------

20秋 94被卡一分。。。心理落差有点大

想起来有一次小测没听题目结果题面意思看错了,答非所问只拿了六分,可能就扣这上面了,也真是自作自受

信安必修,勉强算外院学生

渣p个图

 

相关推荐: