之前对C++还没有学习经验,仅对C语言有了比较深入的学习和了解,以下是我1.21-1.23对于第一个专题的学习心得。
一、首先我对在群里发的语法糖、时空复杂度和STL的使用做了初步了解,学习了C++代码编写的基本框架,语法和思路写出来和C语言大同小异,只是在一些表达上有所不同,了解了一些常用的STL容器,接下来就是通过题目对自己所学进行巩固
二、在课件的帮助下,对vjudge网站上的题目进行初步的解题。
1、long long:按照之前学习C语言的经验,我判断这道题就是以变量N作为循环次数,令循环输出o即可实现题目要求,没有遇到什么问题,for或者while都可以
2、YES or YES:我的思路是将输入的字符串全部转化为小写以后用strcmp函数对转化后的字符串和yes比较是否相等,刚开始犯了一个错误就是想直接整个转化,之后发现不对,需要一个一个字母分别转化,和讲评的第二种思路相似,另一种思路就是八种情况暴力判断
3、Even?Odd?G:刚开始惯性思维想直接通过取余2是否有余数来判断奇偶性,发现错了,这些数字很大,整形数据读入再判断会出错,讲评思路用末尾数字判断以及字符串读入开拓了我的思路
4、problem generator:花了一段时间理解题目,我是用对每一个类型分别判断,分别统计数据
5、rules 分为两种情况进行讨论,判断只要有一种情况符合就说明规则符合民意的思路。
6、many replacement:无法做到独立思考优化时间复杂度,讲评后明白就是要记录每个小写字母Q次操作后变成了哪一个字母
7、更好的交换:第一次做超时了,并且不会优化代码,原来是要标记每个元素对应的行列
三、时空复杂度的问题要进行思维的训练和巩固,STL的使用也要训练自己的熟练度