易保研机试训练营-基础营|考点汇总

0.保研机试赛制

易保研机试训练营-基础营|考点汇总_第1张图片
举例:1清华、复旦、上交2浙大3北大

如何快速检验思路或代码对错???

1.自己构造样例,按照白盒测试原则,考虑:边界情况、特殊情况、数据溢出、时空复杂度
2.重读代码,检查思维和代码是否一致
3.计算时空复杂度

如何快速有思路???

1.保持写题手感
2.机试知识点要全
3.对于每个知识点要清楚常见题型
4.大胆尝试,寻找思路

机试编译器???

1.VS:mvsc
2.CodeBlocks:g++
3.Dev-c++
4.Clion
5.Eclipse、IDEA

0.时间复杂度

计算机最高性能一般是1秒钟一亿次常规计算。
易保研机试训练营-基础营|考点汇总_第2张图片

1.模拟

概念:模拟问题就是简单地用代码去仿真题目描述的问题,实现题面的要求。
位置:签到题
思路:看清题意

2.数学

概念:数学问题主要考验思维(思路)和基本的数学素养,一般几行代码就可解决
位置:签到题/中等难度题
思路:找规律/数学推导

3.字符串

概念:以字符串为语法点展开的算法问题
位置:中等难度题
思路:字符串基础
易保研机试训练营-基础营|考点汇总_第3张图片

4.排序

概念:将输入的数据按照某种条件变成有序序列,是贪心和二分的基础
思路:一般直接调用sort,有时需要手动(复杂度要求高时)

5.查找

概念:从输入数据中找到特定要求的数据
思路:先排序,后查找,常考察二分查找(整数查找和浮点数查找)
注意:浮点数查找两种限定精度的方式

//1.按照精度要求查找
while(fabs(left-right)<1e-7) {……}
//2.最多不超过100次查找,这样不会出现死循环的可能性(推荐)
for(int i = 0; i < 100; ++i) {……}

6.贪心

概念:在求解问题时,总是做出当前看来最好的选择,即不考虑整体最优,而是局部最优(但事实上是整体最优,可证明,但机试考场上无需证明)
思路:贪心选择性+最优子结构(子问题最优),要在逻辑上想清楚如何贪心
解题技巧:举反例,满足反例的,即为贪心的正确解法

7.搜索

概念:利用计算机的高性能穷举问题的所有情况,并从中寻找解。搜索过程实际上是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态节点的过程。
思路:二分、BFS、DFS
注意:DFS和BFS往往需要剪枝

1.一般当题目涉及到:时间最短的时候,用广搜
2.记忆化搜索:把递归中间过程结果记录下来,也属于一种剪枝的方法

8.动态规划

概念:将问题分解为若干子问题(具有子问题重叠性:各个子问题不相互独立,被重复计算),先求解子问题,然后得到原问题的解(最优子结构:先求得子问题的最优解,然后求原问题的最优解)。(与记忆化搜索类似)
与贪心的区别:
贪心先寻找到子问题的全部最优解,然后进行选择;
动态规划在找到一个子问题的最优解后,先做一次贪心选择,求解出选择的子问题,从而不必要求解所有相关的子问题???
思路:
1.定义数组元素的含义
2.找出数组元素之间的关系式:状态转移方程
3.找出初始值/边界值
实例:二维动态规划
易保研机试训练营-基础营|考点汇总_第4张图片

你可能感兴趣的:(VJudge)