C++学习心得


C++的学习,用一句老话说“书山有路勤为径,学海无涯苦作舟”。但只要你肯坚持,多难的算法都能迎刃而解。

为什么要学习算法

算法是C++的一个学习的重要部分,为什么要学习他,就是为了加快你的代码运行速度,拿出最优解。

举个例子:
最大子段和是一个经典例题,学过的人一眼看去,动态规划!但我们反过来想,如果你没有学过动态规划,那样你会怎么做?

P a r t   1 \tt Part\ 1 Part 1

双重循环枚举左端点 L L L 和右端点 R R R,用 s u m sum sum 统计和,之后进行比较,取最大值,但不过这样时间复杂度太高了,换个思路?

P a r t   2 \tt Part\ 2 Part 2

利用前缀和 s u m sum sum 数组来优化(没学过?看这篇。感谢@凉云生烟 ),区间 [ L , R ] [L,R] [L,R] 区间和相当于:
s u m R − s u m L − 1 sum_R-sum_{L-1} sumRsumL1
但不过这样复杂度也太高了!

P a r t   3 \tt Part\ 3 Part 3

当然,以上只是列举了两个做法,当然,还有许多做法:深度优先搜索、分治、贪心……但不过有这么多算法,可我们仍然坚定信念,这题做法一定是:动态规划!为什么,因为他是最优解

如何学习算法

勤做笔记

这是一个非常重要的事情,清代文学大家章学诚说过:“读书如不及时做笔记,犹如雨落大海没有踪迹。”,笔记是你对当堂课的巩固,所以要勤做笔记!
注意:建议做纸质笔记,电子版笔记需要有固定的集合,方便查找,巩固。

认真听讲

我们赛前冲刺时,我们班的一个人被老师逐了出去,他在老师讲题的时候切屏出去玩游戏,被老师发现了,后面的事情就不过多赘述,总之他这样的行为是不好的。上课时,特别是大赛赛前冲刺时一定要好好听讲,不要弄别的,可能“差之毫厘,谬以千里”,你那一个关键点没听懂,可能后面的都跟不上了。

课后巩固

这一方面,有几点:

  • 巩固:建议和“勤做笔记”结合起来,子曰:“温故而知新,可以为师矣”,只要定期进行一个阶段复习,那么你对这个知识的把握就能刚上一层楼。
  • 刷题:我们可以去洛谷刷题,题十分全面,而且,建议做题是就像打一场比赛一样,有一个专门的草稿本,去列思路。
  • 打比赛:去洛谷Atcoder,把每一次的比赛当做大赛去对待。

查漏补缺

可以购买书籍,或在网上查阅资料,在这里推荐几本书:

  1. 深入浅出程序设计竞赛 基础篇,讲的十分详细,印刷质量也很不错,各种算法都有。
  2. 信息学奥赛一本通,非常经典的教材,但因为教材编写久远,与现在的NOI大纲有些不符。

还有,如果你的老师是在一些可以录播的软件上进行讲解的,可以反复观看,特别是对自己不懂得,可以加深印象。

总结

以上就是我对C++算法学习的总结,谢谢观看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值