总结((20191027))
这周是学生复习专题。
上午都是同学组织复习知识点,这周复习了数据结构、数学、字符串、贪心、二分,同学们都准备得很充分,讲的题都很具有代表性,基本上搞懂一道题就可以把相应的知识点熟练掌握,下来我也会尽量去把同学推荐的题刷完。
听了同学们的自主复习,我发现自己的某些数据结构只是懂了它怎么写,但并没有搞懂它的用法,所以当一道题需要数据结构
和其他技巧结合的时候,我写着就有些困难。关于数学,我的组合数的公式推导还是比较薄弱,有时候并不能把所有的情况讨论清楚,导致漏解或者情况重复。
字符串的话,(KMP)、(AC)自动机等算法我都会写,但是(AC)自动机却仅仅停留在会敲板子的水平,它的应用我并没有去额外刷很多题去了解,虽然它不是范围内的知识,但有时间还是要去学习一下。
二分其实不难,一般的二分就是用来优化查找时间,二分答案的话,只要看出答案容易check但是不容易直接求,再根据数据范围就可以大致想到用二分答案来求,但二分答案虽然好像,(check)函数才是其中的精髓,往往还是要用到很多算法才能完成一次(check)。
关于贪心,感觉它是一个简单而显然的问题,但是有些贪心并不是特别明显,这是就要用到一些数学方法,比如曾柏文讲的临近交换法,推出贪心的条件是什么,然后才能排序解出问题。
这几天每天下午也在考试,我自己在考场上容易犯两个错:
一是容易把简单的问题复杂化,爱用数据结构去乱搞,但有时并没有把题目的性质完全弄懂,即便用复杂的方法过了一道题,那也只是运气好,出题人没有故意卡掉非正解做法,所以以后我读题时应该先分析清楚性质,而不是稍微看懂题就开始想着用高级的算法去套。
第二个问题是心态不好,昨天下午考的题比较简单,但我第三题调了很久都有点问题,但就是看不出问题在哪,反复读了几遍程序,也没发现问题所在。考试一结束,我重新读了下题,立刻发现答案要取字典序较小的,但我做着题就把这个条件给忽略了,当我把线段树里的(<)改成(<=)就(A)了。以后查错时,要平稳心态,不要钻牛角尖,试着重新读题,看自己是不是忘记了考虑某些条件。
离考试不远了,这段时间的目标就是要专心复习,把算法应用得更灵活。