2016年总结-张贤

2016年,我接触了信息学,第一次参加了noip,小学组的信息比赛,学习了很多东西,写个总结吧。

我可以简单分成这几个大块:

1.考试技巧。

2.暴力。

3.算法。

4.数学。


1.考试技巧:

(1)首先我发现考试的时候最重要的一点就是一定要放松,考完试担心担心都随便,但考试的时候心情一定要放松。这次noip就是太紧张了导致第二题那个简单题没有敲出来。

(2)考试前一天最好就不要复习了,早点睡多休息。

(3)其实我觉得最重要的一点就是考试的时候要想想这道题应该用什么方法做。(这个其实非常重要)


2.暴力:

(1)模拟:

模拟这里其实没有什么特别需要学习的,但是需要联系程序能力。16年我其实写的模拟还是不多,导致我在写80~100行以上的大模拟就hold不住了。模拟没什么说的,考试的时候模拟题一定要拿到分,就是读题,摘抄,迅速结束

打算跟搜索一样,一直不间断的练下去。

(2)搜索:

其实我觉得最近我写的搜索还是不够多,争取在下半学期迅速,有效的多练习搜索。现在我的搜索太渣了!渣!还是要多练。搜索题只要能想清楚开始状态、结束状态、中间的变化过程和过程的影响就没什么了。但是我往往还是想不清楚过程的影响导致写作速度非常慢。现在就打算一直练下去,就是不间断。

(3)写到这,其实我觉得暴力已经没了,但是还有一种 乱搞:

就是模拟+搜索+数论。


3.算法:


(1)听了罗剑桥和八十414里同学的讨论,我发现最重要也是我最不擅长,最烦人,分数却占的最多的 DP:

DP就是动态规划,其实应该是一种思考题目的思维方式。

01背包:这道题是经典的DP题目,思路就是第n个物品的最大价值m=max(不放这个物品,放这个物品)。

过河:这也是经典的区间DP题目,如果s==t 则单独处理,直接暴力出结果。否则进行区间DP,还是挺重要的。明白思路,但是希望能有一个好用的标程。

(vijos 1002)

最长不下降子序列:其实不是很难,主要就是对于a[i]都是找一个大于等于的一段后缀作为a[i]的后缀,以此类推,到a[0]就结束了。

贾老师发的关于DP的PPT现在还在看,主要发现对于正常的DP来说,可能不仅仅包含了思路,还包含了一些组合数学,甚至是一些暴力的成分在里面。现在我在努力练习我的思考方式,我觉得其实代码实现只要把2.1、2.2练好了,考试前集中训练一段就没问题。我本人其实可以说非常不擅长DP,有点讨厌这个算法的程序实现方法,但是我同样觉得其实这个思考方式可以解决非常多的问题,可以把复杂的东西简单化,到最后其实也能写出一个大概,简单题进行修改后也能打出一个程序。我寒假就主要是对DP这块进行学习,现在也能明白这种思考方式。

现在我的体会呢主要还是一定要想清楚有什么递推关系,有了这个关系就非常容易。关系的找法主要可以根据题目本身的说法,找出其中变化的时候的增加量和减少量以及不变量从而推出这个递推关系。

还是需要多学习,考试的时候稳住静下心来还是很有可能给推出来的。


(2)vijos上面类型最杂,最乱,但是想法最简单的一种算法就是 高精度:

高精度主要还是分为两类,高精度加法、高精度乘法。高精度加法其实没有什么东西,思想就是把两个数字先变成字符串,然后掉各个,再变成数组,然后一位一位进行相加。

最后单独处理进位。

高精度乘法:这种计算稍微难一点,但是不难发现n的第i位和m的低j位结果会储存到答案的第i+j位。所以也结束了。但是这道题的进位不能图省事直接加上去,只能在乘法完毕后单独处理。

对于高精度问题我做的不是很多,但是都比较难,其实想法不难,就是需要在代码实现的时候多注意细节。vijos1223 麦森数。其实都很简单,就是高精度快速幂,答案:https://vijos.org/records/58193d8417f3ca4534f6a0b7

很简单,注意细节即可。


(3)我觉得最锻炼思维的题目就是 贪心:

贪心就是在对问题求解时,只考虑局部最优解,不考虑整体的最优。

我是通过这道题了解的贪心:vijos1123 均分纸牌。一道非常经典的贪心,想法非常简单但是直指中心。因为总和可以算出来,牌堆的数量也知道,所以均分完毕后每堆牌的数量也可以算出来。然后我就直接从第一堆牌开始贪心,直接把这堆牌变成均分完后的数量,然后把差加在下一堆牌里。

贪心这种题其实主要还是需要思考,我这块做的题还是不太多,可能在DP学习基本完成了之后会集中训练一段时间。


(4)分治:

其实分治这一块我现在也不是很清楚,也没做过什么题, 只停留在听说过算法,知道算法思想,此外就不知道了。

也打算暂时不去处理这一块。


(5)二分搜索:
这个部分基本上都能了解,都能做出来,像小学组的打电话那道题,其实不是很难。主要还是先排序,然后切半比较就行了。

这一方面其实我不敢说掌握的很好,但也不是完全不了解,做了三四道题。基本上能知道应该怎么做。

基本完成,下学期找两三天把二分过了就行。


(6)数据结构:

这个东西主要就是语法方面,像stack,set,queue,其实都是可以帮助进行解题的。但是我觉得现在最好还是暂时能不用数据结构就不用,先锻炼思维强度和巧妙地思想再用数据结构解决问题。

数据结构上面语法我掌握的没什么问题,使用上面也是一些比较明显的题目我能看出来使用,并且也能用。因为没有做过比较难的数据结构的题目,所以我也不太清楚数据结构方面的难题我掌握的怎么样。

发现还有很多种数据结构,也就是打算跟着老师先往下学,在题目中发现不会的类型再单独处理。


4.数学:

(1)组合数的插板法也就是小学奥数里的内容已经学习过好几遍了,完全能明白怎么做,但是并没有见过需要这种算法的题目。

(2)矩阵乘法:这个算法能明白,理解,也能完成矩阵乘法求斐波那契额数列,发现的确是很有意思。

(3)egcd:这里的扩展欧几里得就是能敲出代码,也能做一些简单题,但是不是很明白证明的过程,我打算再下学期中间把数学方面的证明和推导过程再复习一遍。但是基本的应用还是能做的。

(4)高斯消元:这个其实我现在能明白理论方面怎么做,也非常确定。但是代码实现并不能做到,希望有一个标程。

(5)中国剩余定理:这个数学算法我非常喜欢。数论倒数的应用和一些数学知识应用到一起就形成了强大的中国剩余定理。我用这个数学解了3道题,可以明白怎么使用了。

反正数学这块我还是要重新过一遍的。



总得来说,2016年接触了信息学,接触了80中,收获还是非常大的。在我经历了小学组的惨痛教训之后我决定努力学习,不断地回顾学习过的东西。

信息也让我对学习的态度发生了变化吧,也让我在态度变化后学习成绩有了变化。虽然只有半年,但是信息改变了我很多啊,真的太多了。尽管学校内我少上一天课,但是我的成绩排到了班级第一,真的改变了我的态度,改变了我的很多。                          

     2017年2月

    张贤


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值