首先还是要吐槽一下,(qzez) 真的算是浙江省重点中学里最磕碜的一所了,(cxzx) 甚至装修的像紫禁城。。。
这次出去集训终于是讲算法了,即使我基本上没有听懂什么东西。我觉得可能是我接受能力不够,要么就是教学设置的有问题。上午讲算法,中午不开网,下午就打题目,晚上订正。上午的东西完全没有时间消化或者去网上扒东西理解,讲的又还特么要一堆先学一堆前置芝士。
来授课的全都是神犇,但是好像神犇们讲课的方式完全不同。楼神((LJN) & (LCH))喜欢追求最优解和证明算法复杂度;清北的神仙喜欢直接艹数据结构,上来就说难题,然后用一种看起来很简单但我就是不会的算法把它秒掉,然后讲课速度贼快;(ECNU) 的巨佬((zyr))会感性理解,但是一般都是一些毒瘤的算法。
这就导致我的学习计划里突然多了诸如网络流,点分治,树链剖分甚至期望之类的东西,以及它们的前置芝士。这当然是不行的,所以我下午的模拟赛就开始了花式暴力贪心打表骗分。所幸有些东西真的就是这么解的,不然出一些上午讲课内容的东西肯定直接跪。
其实 (OI) 应该还算是比较友善的。就算打模拟赛的时候觉得题目多恶心,下发 (SOL) 的时候还是会发现如果拆分成这些子问题的话每个模块都很简单,自己简直是个傻子。每天自闭的过程中,也学到了很多套路,比如说有单调性一般就是二分,有常量和必然性(一定规则)的问题可能是贪心或者dp,数据极大就肯定要么数位dp要么打表出奇迹。
然后问题越烦越简单,绕人的问题一般就没多少种拆分问题的方式。反倒是看起来简洁的问题可能需要一百多行的代码。因为它很可能是某个高深算法的模板。
楼神说背模板就可以了,不需要完全理解。
最后是需要学会转化问题,给了一个字符串不一定是KMP,DP之类的算法,可能需要建图;限制很多的条件可能也有显然的最优策略,然后贪心。有些问题真的很沙雕,就是为了绕人换了一种说法,瞬间难度上升。参见合并果子和((n*m)%(p))。
(Fin.)