集训前6日的飞机总结

巧妙地,刘神因为即将到来的集训,把我们所有不到三个月学习时间的弱鸡们都拉上开始坐飞机。
于是我们成功地在不到一个星期的时间里,把 (据说正常人学习一年,那我岂不是可以羽化而登仙)本来在一个学期里学完的知识以十分精细的讲课方式讲完了。
虽说听得脑子十分的浑浊,知识在脑子里存活的时间不到2天就会死亡,完全没有知识体系的形成,但勉强跟上了

首先是老查非常快速地将基本数据结构带过,于是我们在刘老师的带领下学习了一天的 搜索

搜索的本质就是逐步试探,在试探的过程中找到问题的解。
于是讲了暴力枚举,然后还有根据题意对枚举 的优化。再是讲了floodfill算法 以及迷宫类问题,在这里谈到了回溯。
回溯的存在使得所有的路线都能搜索一遍,再返回上一次的状态时把当前修改过的状态恢复。时间复杂度巨大,保证把所有方案列出。
接着说了经典的八皇后问题,深搜加回溯。

然而搜索中很重要的两点即是DFS与BFS(于是数据结构没巩固好的我打不出来BFS) 这两个搜索都需要我们维护数据整体结构,如何做出优化是一大难点与重点。

于是搜索就这样告一段落 接下来讲的是动态规划
动态规划从实际上出发就是高效的贪心,我们需要在局部最优中推出全局最优。老师没有深入地带我们学习动态规划,只是简单地入个门就有点令我头大。

动态规划三要素 划分阶段 设置状态 最状态转移
在想状态时先写出f[I] 求什么 设什么 。同时 我们使用动态规划有几个标准 首先是判断其是否具有最优子结构(尽管还不是很理解)再是我们需要考虑问题的无后效性,然后才能设法构建状态转移方程,递推求得最终解。

接着是动态规划的几个分支 一是资源分配问题 二是背包问题( 九讲)然后简单地讲了双进程类动态规划,以及区间动态规划,关于其他的分支,暂时没有多讲。

然后又是一个考试重难点 图论。
图论算法对人的思维水平要求就比先前的算法高很多 (自认为) ,于是我开始懵了,然后在各位蒟蒻大佬的帮助下成功弄懂了书上的模板并像个傻子一样在空白的地方写各种注释。
首先是图的存储,邻接矩阵和邻接表,复杂度上邻接表要优秀得多,代码的实现上邻接矩阵简单一些。做题时被坑过有必要写一下的就是数据出现重边的问题时邻接矩阵必须判断而邻接表可以忽视对其的判断。

图的遍历就要用到之前所学的Dfs和Bfs,成功读懂书上代码花了我一天的时间,然后我仍然不能脱离书本打模板( 我真想敲死自己) ,从做题经验(也就做了小小数量的题) Bfs貌似更为实用。一个还没有深刻理解的是那个神奇的for循环语句
接着是一个连通性的判断,用到了图的传递闭包,三层循环中k一定放在最外层。据老师说是个骗分神器(尚未领会)

图的最短路径(貌似是以后图论的基础)
任意两点间的最短路径  floyed算法,其实本质是我们三角形的性质。邻接矩阵, 一定记住不能超过500个点。支持负权,无负权回路。

一个定点到其他定点的最短路径  dijkstra算法 单源 无负权 ←这个算法研究了好久 书上给出了邻接矩阵的情况 自己稍稍改了一些写出了链表的代码。
另一个算法 Bellman-ford算法 相对于dijkstra边权可正可负,进行n次迭代可判负环(上面的算法进行n-1次迭代,从源点开始) 然后是SPFA算法,上述算法的优化,本质是引入循环队列,一个点可以在出队后再次进队。因为可能绕了一大圈然后发现还是这个点最短,直到队列为空停止。

然后懵逼地听完了最小生成树和拓扑排序。没讲课的那天我又自行巩固了一下前面的知识(然而并没有什么用)
这几天集训没能写总结,准备集训最后写到博客上。

虽然很紧张每天眼睛都不是很舒服但是仍有乐趣
加油啦

猜你喜欢

转载自blog.csdn.net/whs_2021/article/details/80398651