上网课的时间过得真快,不知不觉一周又过去了。感觉上一次写博客仿佛就在昨天。这周费老向我们发了一个ICPC省赛,我犹豫再三,最终还是决定不去。因为我清楚我自己的实力,我明白以我现在的水平去参加比赛感觉就像是鸡蛋碰石头,所以还不如现在先储精蓄锐到大二再去参加,至少会比我现在更有水平一点,获奖虽然很难,但我也想去见识见识。

那接下来就说一说我这一周都干了些什么吧。平常我都是在空闲之余看“算法笔记”最近研究哪一部分内容就挑哪一部分看,由于现在是线上教学,感觉整体进度都慢了一丝丝,所以平常也多出了更多空闲的时间。但加入的dangjian更是让我忙不过来,组织需要我,既来之则安之,同时也让我意识到了时间的珍贵性,因此我比以前更要抓紧我的时间因为我的空闲时间又比别人少了一半。所以我每天完成主修课相应的复习和任务后,我就会看“算法笔记”,或者我给自己规定先看上多长时间的算法笔记,然后再去做一些别的科目。我平时是以“算法笔记”为主,费老给的“要看的资料”为辅,书上相关的看完了或者搞不懂的时候去资料里面翻翻。

接下来说正事:

1、(1)这周接触最多的就是二分算法(必须在升序情况下),可能这是算法里面最容易理解也最容易实现的一个,但是细节!!!细节决定成败!!!尤其是while(l<r)或者while(l<=r),他们和{}内的内容都是相关联的,如果只改动一个符号,也不能够AC。开始我以为while(l<r or l<=r)这两者是不能在同一种类型的题目中用的,于是我开始各种搜索什么时候用l<r什么时候l<=r,但一番搜索和做题后发现这两个是可以互换的,只不过要改里面的条件。

(2)l<r的结束条件边界是l>=r, 循环时的区间是[l,r)左闭右开,因此l在但r不在判断的范围内;如果mid偏大,r = mid,mid不可能是我们要找的数,而r端点本来就不会是答案,所以可以这么写;如果mid偏小,则l=mid+1(这里也涉及到一个死循环问题,如果l=mid则最后可能l一直是mid,永远<r,就进入了死循环)。l<=r时,[l,r]左闭右闭,r也在判断范围内,所以这时往往r=mid-1(mid已经被判断过了该判断mid-1了,而右端点又是闭区间),当然具体情况还是要根据原题分析。

(3)值得注意的是有时(l+r)/2会越界可以用l+(r-1)/2

(4)通过资料得知还有个三分,三分的题我还没做过只了解了个大概,三分应用于有峰值的一组数据,小大小或者大小大,{lmid = l + (r-l)/3,rmid = r - (r-l)/3,ans(lmid) < ans(rmid))时r = rr,反之l=ll

(5)如果涉及浮点数的查找一般限制条件是精度,l-s<eps(一般是1e-5)

2、当定义一个指针并指向数组时,可以用指针代替数组,特别是在构造函数的参数中,用指针更加方便,同时也可以用p=a~a+n的循环来输出数组

3、思维的转换,在做题时想不出来好的办法可以换一种角度去思考他往往会简单许多

比如求最后一个满足k>=K时的长度L,一个一个的找下去还不如找第一个k<K时的长度L(保证为整数)然后再减1;

4、在这记录一些看资料的小收获

(1)求a^n,快速幂,可以用递归(n是偶数则(a^n/2)^2,n是奇数则-1再视为偶数);也可以把n写成二进制(a^13=a^(8+4+1))

(2)在书上看到求一个字符串里面pat的个数(被隔开也没事,只要顺序是这个顺序就行):先找到一个a ,然后用a左边p的个数*a右边t的个数然后再加上后面的a(也是这样求)。!!!简直太聪明了!!我根本想不到这种方法!!! 这么简单的一个小方法我是真的怎么也想不到,这方法简直太聪明了!!我忍不住不佩服!虽然就是很简单的一个小题。

(3)vector类型的数组

v1=v2即可将v2全部赋值到v1(算法笔记上看到一个题里面用的才知道的,然后后面的是通过搜索了解到的),或者是在定义时vector<int> v1(v2);交换两数组内容:v1.swap(v2);

(4)遇到和矩阵相关的问题,一定要判断数组是否越界!需要访问a[x][y]周边的不止一个元素时,先建立好x[]和y[]数组,x[i]和y[i]相互对应,然后用循环让a的横纵坐标同时加减x[i]y[i]就能访问到一个元素周边的元素了

(搜索看的还不多还没有研究透,qwq下周再继续搜索)

本周c++学习小结和心得相关推荐

  1. 本周学习小结(11/03 - 17/03)

    LeetCode LeetCode刷题. 本周主要在ML上. 学习笔记之Problem Solving with Algorithms and Data Structures using Python ...

  2. 201671010130 2016-2017-2 《Java程序设计》第五周学习小结

    第五周学习小结 本周的课堂通过老师的讲解,我觉得自己在看书时的疑惑(比如子类如果不需要用到父类的某个方法怎么解决呢?),通过老师的讲解首先是绝对不能在子类中直接删除其方法的,但是可以通过覆盖的方法将其 ...

  3. Git 个人学习笔记及心得

    作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...

  4. 机器学习/深度学习/图机器学习 学习小结

    目录 前言 学习小结 一.机器学习部分 二.深度学习部分 三.图神经网络 概念清晰!概念清晰!概念清晰! 磨刀不误砍柴工! 最难的是开始,最简单的也是开始! 前言 历时将近一年吧,因为疫情原因在家,终 ...

  5. 【自学者】学习小结(关于深度学习、视觉和学习体会)

    以下仅仅是考研上岸到开学一个月期间的自学体会,仅作为参考,仅代表当时观点,不代表现在观点,有空的话我会出一期现在的一些小建议博客,仅作为小建议,本人不是很厉害,只是想分享当时的经验,大佬请自动绕过,最 ...

  6. Python - 输出格式 (学习小结)

    Python - 输出格式 (学习小结) Bu.xing 利用现代手段,创建学习家园 ​关注他 1 人赞同了该文章 Python 输出格式 我们常说的输出格式分两种含义: # 一种是指数据在屏幕上的显 ...

  7. Page 的生命周期学习小结

    (以前我在 csdn 写的翻译文章,现在转到这里来.) Page 的生命周期学习小结 原文链接:Page Events: Order and PostBack 作者:Paul Wilson 翻译:木野 ...

  8. c语言基本类型学习小结

    基本类型学习小结 环境: Dev-C++ 4.9.6.0 (gcc/mingw32), 使用-Wall编译选项 基本类型包括字节型(char).整型(int)和浮点型(float/double). 定 ...

  9. python中字典和集合的区别_Python中字典和集合学习小结

    映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引 与序列不同,映射是无序的,通过键进行索引 任何不可变对象都可用作字典的键,如字符串.数字.元组等 包含可变对象的列表. ...

最新文章

  1. OpenGL 变换Transformations
  2. 个人收集 - 1、自动消失的消息提示(Js+Div实现)
  3. 安装sql时挂起的解决方法
  4. Python暴力破解凯撒加密的文本
  5. Python的模板:HTML代码 + 模板语法
  6. Web中间件常见安全漏洞总结
  7. 树形动态规划 java_树形动态规划
  8. C语言实现简单小游戏
  9. 电源管理总线 (PMBus)
  10. php免杀书籍,php免杀教程【绝对原创+首发】
  11. libvlc.java_java – LibVlc android无法加载库
  12. 黑马程序员最新Python教程——第一阶段(1)
  13. Centos7云服务器部署SpringBoot项目(手动配置环境篇)
  14. 有哪些好用的智能写作工具?
  15. 你能在泰坦尼克号上活下来吗?Kaggle的经典挑战
  16. 微信地图wgs84坐标,gcj02坐标,bd09坐标转换
  17. 高中计算机专业满分多少,高中各科满分是多少
  18. 试商法 素数探求 c语言,连续合数探求
  19. 计算机房在单位的作用,你们单位计算机房工作人员临时不在,单位人事部小陈,路过计算机房闻...
  20. 语音合成论文优选:Flavored Tacotron: Conditional Learning for Prosodic-linguistic Features

热门文章

  1. 东师《中国画技法》离线作业网考
  2. 教你怎么批量查询快递单号,一学就会
  3. vue照片查看器插件v-viewer
  4. ISP许可证办理攻略全了解
  5. 北京 买房 提取 公积金
  6. 野生程序员的折腾— 从包工头到程序猿(一)
  7. 机械CAD软件中还能这样制作材料清单BOM表?
  8. 前端文字下划线的模拟
  9. SLF4J的高级写法
  10. 利用python爆破mysql数据库