ACM课程总结

一个在特殊时间的学期快要结束了,接下来很多课都要进入总结复习的阶段,下面就是关于这个让人又爱又恨的课的课程总结了。

1、学习总结
这学期主要的学习过程:递归→贪心→dp(动态规划)→二分三分→数论。中间还掺杂着STL里的一些东西,还有最后的补充数组(但这块搞得我真的有点头大有两个甚至连原理都很迷)
1)递归(函数的自我调用)
思维方式:把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
关键点:递归边界及递归定义(大型问题与小型问题之间的关系)。
感受:理解起来还好,用起来也算是比较顺溜,但后续一些题目里容易超时,所以现在在cf上一些比赛感觉用的不算多,现在偶尔弄一两题稍微保持一下手感。
2)贪心(最优解)
概念:利用最优策略,将复杂问题分解成子问题,通过子问题的最优解法得到整体问题的最优解。
关键点:题目是否适用于贪心算法,如何确定所选择的策略为最优策略(举反例)。
注意:贪心算法只进行局部分析,不具备”大局观“,且无后效性(决策一旦做出无法更改)。
基本思路(取自信息学奥赛一本通):
(1)建立数学模型来描述问题
(2)把求解的问题分成若干个子问题
(3)对每一个子问题求局部最优解
(4)把子问题的局部最优解合成原来问题的解
感受:cf的前面的几题都有贪心的影子,但我经常会卡在“最优”上,很多时候要推两三次才能推到”最优“,这样在打比赛的时候就会浪费十几分钟的时间,还是熟练度的问题吧。
3)dp(动态规划)
这个我感觉像是贪心的强化版,但用起来真的有点别扭。一些题目一看就感觉可以用,但用着用着就莫名其妙感觉变形了,导致我现在到比赛都不太敢用了。
设计步骤:
①分析优化解的结构
②递归地定义最优解的代价
③自底向上地计算优化解的代价保存之,并获取构造最优解的信息
④根据构造最优解的信息构造优化解
特点:
①把原始问题划分成一系列子问题
②求解每个子问题仅一次,并将其结果保存在一个表中,以后用到时直接存取,不重复计算,节省计算时间
③自底向上地计算
④整体问题最优解取决于子问题的最优解
虽然dp说到底还是一种思想,但它还是有一些小的分类:线性dp,区间dp,背包问题。不同的小分类有一些特殊的技巧,虽然总体思路差不多,但实际操作起来,不同小类差别还是挺大的。
4)二分三分
二分思想主要还是来自二分查找,在一个有序数组,通过不断的对半判断,调整上下界,从而找到目标值。图像上来看更偏向于一个一元函数。
三分的话是找某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分法不断逼近求解。模型上是一个二次函数。
5)数论
目前学的主要还是关于模的相关运算和衍生法则,涉及定理包括但不限于:埃氏筛法、GCD欧几里得算法(辗转相除法)、最小公倍数、快速幂、费马小定理、欧拉定理、欧拉定理的推论、裴蜀定理、扩展欧几里得算法、逆元及求解、容斥原理、欧拉函数、线性同余方程、中国剩余定理等。
尽管作为一个数学系的学生,后面的很多东西到现在我都感觉有些理解不能,可能还是逻辑推理能力太差了。
6)一些琐碎的小知识
(1)排序:冒泡排序,选择排序,插入排序。
思想其实都挺简单的,但上半学期没讲,当时我自己看了一遍,也试了几个题,感觉也挺好。但后来就都用sort了……
(2)STL
STL 是指 C++ 标准模板库,是 C++ 语言标准中的重要组成部分,其以模板类和模版函数的形式提供了各种数据结构与算法的精巧实现,如果能充分使用STL,可以在代码空间、执行时间、编码效率上得到极大的提高。
这里面基本都挺好用的,一些特定的题用起来会很舒服。但泛用性来说,字符相关的还是string很多时候还是会比传统的char来的方便。
(3)位运算
按位与(&)、按位或(|)、按位异或(^)、×2(<<)、÷2(>>)、按位取反(~)
涉及到二进制编码的一些东西理解起来还好,毕竟当初进制转换也算是必考题了。但用起来更多还是在快速幂哪里,减少运算时间。

2、课程感受
作为一个当初的浙江的新高考改革后的学生,算是从高二开始接触打代码,虽然当初学的是VB。所以在大一上半学期刚接触c++程序设计的时候,感觉还是比较轻松的,虽然学到现在感觉有点崩。但其实高中的时候,也跟老师交流过,多少知道也学过一两个算法,知道深入学习下去的难度,所以多少做好了一些心理准备,而且当初一开始也有考虑专门走计算机,但后来还是摇摆到了数学去,虽然现在专业分流还是选择了信息与计算科学。
当初决定上ACM的专业课,很大程度上确实还是因为兴趣,毕竟大学还是要有点目标的嘛。一开始也是有犹豫过到底是纯粹的当个兴趣来培养,还是去多学点东西,为自己后来的简历上多写点东西。后来还是在寒假的时候跟家里人(两个表姐都是学Java的)还有一些老师交流一下,最后还是决定以数学为主,剩下的精力尽力去拼一波acm。
至于课程上知识,说实话,这或许就是大学的课程容量吧,每次上课到后面的阶段,都感觉大脑在过载(周二的理论课是在数学分析后面的),经常会感觉脑子慢一拍,讲题目的时候还要自己开一个知识点的PPT对照着看,不然有时候是真的有点跟不上趟。
稍微谈一下比赛方面,div3的题前三个看情况搞定,不稳,有时候是卡特殊情况脑子转不过来,但跟多还是超时(”一生之敌“),另外时差还是大问题,咖啡都不太管用了。div2就纯白给,有时候能弄出一题就谢天谢地了,菜是原罪啊。
再说收获嘛,怎么说到现在也算学了两个学期了,可能在知识方面没有达标,但还是有点感觉到逻辑思维能力的提升,还有一些细节方面的考量也更加到位了,有时候也可以和数学方面的一些 小知识进行联想了。尽管如此,感觉还是差挺多的。毕竟对比刚放寒假的时候,当时是认认真真学了不少东西,但后来因为疫情、网课,而且在家自制力本来就不算很强,状态越拖越崩,效率也有点听大幅度的下滑,甚至现在心态都有点爆炸,属实难顶。
但不管怎么说做还是要接着做的,宁愿爬到终点,也不要站在起点。可能状态爆炸,但总有好的时候;知识点不扎实,就用时间去硬磨。慢慢提升自己的素质,改掉自己的坏习惯。一点点来吧。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值