Stay Single, Stay Simple
写在最前面
侥幸在保研上机的时候拿到满分,在此记录下考试的题目以及一些体会。
因为考试试卷和答案代码均不能带出考场,以下内容皆为回忆版,附上我仓促写的答案代码,如有不妥还望指教。
机考成绩在保研中占比越来越重,在最后参加机考的人里,加权相差也不会太大,而机考可以轻轻松松拉开二三十分的差距,所以不夸张的说,上机考试一考定乾坤。
不过学院一直在淡化机考,突出CCF CSP考试的重要性,往后有可能只将CCF CSP作为上机唯一标准,所以希望学弟学妹尽早把CSP刷高。当然,CSP难度比机考大很多,但所谓 “取法乎上,仅得乎中”,如果仅仅准备学院机考,最后成绩可能也未必理想。
Leetcode以及牛客网上的题目比较偏重于完成某个小函数,可能与机考以及CSP套路不太相同,这里更推荐刘汝佳大佬的《算法竞赛入门经典》,完成了上面一定量的题目后,学院机考便不在话下。
more >>我们通过一个简单的数据结构(AVL平衡二叉树),对比了函数式语言和命令式语言的区别和联系。并且,通过一些大样例的实验,分析函数式和命令式语言在运行速度方面的特点。
AVL平衡树是在BST的基础上,加入平衡操作得到的。具体来说,对于一棵AVL树的插入和删除操作,我们必须要保证树的平衡性,即某个节点的左右孩子的高度之差最多为1。由此,引入了旋转的操作,分别为左旋、右旋、双左旋和双右旋。
首先,需要定义这个数据结构。对于SML来说,提供了类似typedef
和struct
的语法,可以得到如下的定义:
|
|
从函数式语言家族的起源来看,其问世以来的数十年间,始终是作为一类小众的语言。大多数情况下,只有实验室对其进行一些理论上的研究。但是,随着编程语言的不断发展,我们看到越来越多的主流语言,将函数式特性或者函数式思想纳入到了自己的体系之中。
通过对于函数式语言特性的分析,我们可以了解到其独特的优点。正式由于其严格的类型检查和良好的封装,使得程序员能加不容易写出错误的程序。同时,得益于其数学思想,程序员可以很方便的写出更加优雅且利于并行的程序。这正是函数式特性在现代编程语言如C++、Java、Python不断得到加强的原因。
more >>LCA问题,即最近公共祖先问题。(Lowest common ancestor)
指在一个树或者有向无环图中同时拥有v和w作为后代的最深的节点。在这里,定义一个节点也是其自己的后代,因此如果v是w的后代,那么w就是v和w的最近公共祖先。
RMQ问题,即范围最值查询问题。(Range Minimum Query)
针对数据集的一种条件查询。若给定一个数组A[1,n]范围最值查询指定一个范围条件i到j,要求取出A[i,j]中最大/小的元素。
特别的,如果A上,任意两个相邻元素相差为±1,则称此RMQ问题为±1RMQ问题。
more >>
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true