0
点赞
收藏
分享

微信扫一扫

第三周总结

沉浸在自己的世界里 2022-04-03 阅读 39
c++

这周我绝对没有看够五十篇(忏悔)。看过他人的总结才知道他人的努力,自己的不足。太懒散了,做事总是容易发呆走神,心思太杂了。

大体的看了:

复杂度,预估算法的效率,也就是看有没有可能超时

枚举:一是要想明白要枚举什么,二是如何减少枚举。与到题不会了,就枚举。(感觉后门面除了模拟,分治,构造,剩下的本质都是枚举,只是方式不一样)

模拟: 用在一些比较现实的问题把。要分布写,分条例,一定仔细。

递归&分治:这个思想方法好强。在看快速排序的时候,深刻的理解到它的强大,可惜不太会用。

分治:把一个大问题分解成众多小问题,然后小问题都解出来了,大问题也就解出来了。

分治中有个特例感觉很有意思,叫做减治,我在看top k 问题时看到的。同样是分成众多问题,但只要证明其中的一个就可以解决全部的问题了,比如二分法。我简单这个思想可以用在求局部的问题,就是去减少资源的分配和浪费,只去解决我们需要解决的部分。

贪心:一脸懵逼。适用范围就用在可以分成子问题?我简单就是可以把问题分成一个个相同的问题。用贪心要证明:一是交换顺序不变;二是归纳(还没见过这样的例题)。解法:后悔,排序。

二分:还有三分。。就是查找的时候用吧。需要注意区间(区间弄得我晕头转向)。

前缀和 在区间里重复查找时用

差分 在区间里重复大量增加数值的时候用

倍增:也就了解了了解

构造:数学上的模拟?

看完后这些算法基础后,感觉算法大体上有些是相似的,如果只是要解决问题的话,没有必要分的清清楚楚,我们现在只要了解他们的思想,扩展自己的思路,但不要局限于往上套;也没有绝对完美的算法,效率高的算法,可能适用范围少或者内存消耗大,我们要因题而定。

打算先再把知识通读一遍,每个知识的时候做几道例题(不能盲人摸象,也扩宽一下思路)。后面在狂刷某个知识的题目,加深(见多识广,也算是打好基础)。

我觉得哪里不会看哪里是学习一个东西最快的方法,但是眼高手低,就是想系统 的看一下。而行如果不了解全貌,就很难了解哪些是会的,哪些是不会的。

其他知识:

卡常 (玄学)利用计算机原理的知识提高运行速度 二进制运算 >><< int 代替 bool

常变量用常数等

少取模 逗号表达式 内联函数 还有个for循环展开(不会)

NULL 在c++中是整数,nullptr 指针

二进制的部分运算。

固定坐标是可以用const int x[],const int y[] 来表示;

不要思维太死板,数值是存东西才用的;有些字符,数字,输赢等等,只是个符号,用1,0之类的都可以表示。

要区分大小就用max min函数;条件判断的时候,想想能不能整合在一起,宏观的去看去想

交换两个数的时候可以用swap函数,也可以把结构体中的元素交换

看不懂就不要一直看,你又不是天赋异禀。当阅读量,题量上来的时候,前面不懂的自然就会了。同样就看两三遍,记不住就就不用记了,当你下次用到不会的时候在查找(现在查个东西太容易了)。记就要记到会用,不然就是浪费时间。

举报

相关推荐

第三周练习总结

第三周学习总结(一)

冲刺第三周

第三周作业

第三周笔记总结 2022.02.13

寒假第三周学习总结与反思

第三周周四

0 条评论