这个暑假,我很明显的感觉,我的许多方面都发现了缺陷或得到了提升。
首先是做比赛、做题策略方面的,我还有很多要改进的地方。比赛时,我总是想到一些有些神奇的想法,有时会接近正解或者就是,有时会相差甚远,打代码前不验证我的想法是我一个经常犯并且经常让我比赛丢分的原因,这点要慢慢改。我逐渐发现,我还有一种侥幸心理,我以为,我可以把我想到的一些神奇的东西打出来,但是,往往不尽人意,除了少数几次,我是真的打出来了还对了,其他时候都不行,所以我应该更稳一点,要估量自己是否能够打出这个东西,不然这个可能在真正的赛场中坑惨我。
在我改题时,我总是保持一个原则,不懂的题懂了再打,懂的题就一定要打出。所以,这次的暑假集训,有三道鬼题我没有改,一道是用错位公式的(题解居然直接给递推式了),一道的正解我至今不知道(有人用搜索剪枝过了,然而我觉得这种剪枝不科学),还有一道正解至今仍然不明不白,这些题,我会等到研究透了再改。
在改题时,我会将其视为在比赛,在交之前,我会打对拍,出数据,尽量做到用尽量少的提交次数来AC,有的人说,正确率没什么用,但是,在我看来,正确率是一种十分重要的东西,一般来说,改题时,我们都是知道了正解才改题的,所以改题时的错误往往是细节问题,这个取决于一个人的细心以及耐心,有的人错得多了就心烦意燥,不想改了,但我不会,我主要的问题就是细心,打题很难一次打对,这个是要改的,特别是转了c++之后,数组越界一般不会显示错误,却会用到后面的变量的地址,所以很难发现错误。
其实,改题也是一个吸收的过程,如果这次错了,下次再错,再下次还错,那就是不可以的,这说明其实并没有真正的明白这个知识点,没有融会贯通,所以改题其实是一个比比赛更加珍贵的过程。
我在这个集训内顺利转了c++,让我把pascal的东西几乎都忘掉了,这可能是因为c++的魅力比较大,但是在这里,我想忠告各位有意从p党转c++的人,不要因为c++有各种各样的库就转,你知道set是什么?map?priority_queue?vector?你知道原理吗?你会用p打吗?如果不知道或者不会,请不要打这些东西,我是真的会才打的,如果不会,我何必要打,这就是在作弊。那些一开始就学c++的人,学c++对他们有好处,也有坏处,他们可能会依赖c++的库却不懂原理(当然我不是在批评打c++的人,这仅仅是在针对个别人),它的库是一种帮助,却也在一定程度上限制了一个人的思维,所以,不要依赖库,你可以学,你可以用,但请与我的原则保持一致:一定要懂了原理才用。(特别是 啦啦啦啦啦哈哈哈哈哈 等人)。
在暑假集训中我也学到了许多的东西。对于斜率优化,我的理解程度更深了(斜率大法好);对于离线做法,我也明白得更透彻(离线大法好);对于分块,我更是深感这种算法的好处(分块大法好);对于可修改的主席树,我也学到了更多;对于数论方面,那似乎永远都没有尽头;对于一些小东西的妙用,那更是让我惊叹不已。
同时,我也学会了一些新的知识及解题思路,比如:某些鬼鬼的数据结构套数据结构,AC自动机,拓展欧几里德,lowbit的妙用……
总结就到这里了,这个暑假,是一次提升,希望我在OI路上俞走俞远。
最后我要谴责一下改题时的不良风气:
- 让别人帮忙看程序。别人都不知道你是怎样的打的,怎么帮你看?这是一种十分自私的行为,浪费时间。
- 能A的方法就是好方法,这种思想也是错误的。如果一题有许多的正解,你却用了大水法,那不可以证明你会了这题的正解,在我看来,比赛时可以以用大水法,但是比完赛,就得尽最大的努力去学习理解正解,正解有两个就打两个,有三个就打三个,反正就要尽量学习到更多的东西。