不止是RANK37

来源:互联网 发布:清木堂 知乎 编辑:程序博客网 时间:2024/04/29 07:05


                                                             By LTL

  经过对BDG长期的观察得出的这套理论,希望能对大家学习OI有所帮助。

                                                           入门篇

  首先在掌握一门语言时(P,C都无所谓的),如果不习惯指针可以直接无视。语言之中对于入门选手来说最重要的递归。学好递归才是后面所有的基础。对于学不好递归的同学建议去学一学数列,然后你就能明白了。

  总结出来的写法是(如求a^k)

   int solve(int k)

  {

   If (k==0) return 1;//先处理边界

   Int ans=slove(k/2);//化为子问题

   //知道子问题的解以后整合原问题

     ans=ans*ans;

   If (k%2==1) ans=ans*a;

   Return ans; 

  }

  学好了语言之后就是准备NOIP。要拿一等奖其实只需要学好搜索,贪心,动规就行了(其他知识听老师讲就好,不需要加练)。先来说一说搜索吧,学好递归的话爆搜就很好实现了,个人认为老师教给你们的模板应该改一下。应该是这样

 Search()

  {

   如果是终点就停止。

   枚举决策

  }

  终止条件放外面有助于理解子问题、、

  学基本的DFS就写简单版数独吧,学好基本DFS然后一般DFS考题主要分为2种:剪枝要求高,推荐3道题(黑书上的小木棍,前3短路,埃及分数),这3个做了差不多就会基本的剪枝了;编程难度大,各种玩游戏的题,这个就需要多练习代码能力,推荐(NOIP2011mayan)。至于BFS难度在于判重上,常用的判重的方法:hash,trie,阶乘编码,*平衡树。最后就是对BFSDFS的选择,这个自己体会吧~~~什么A*,IDA*,Dancing Links,其实对于拿一等奖没什么帮助。不要小看搜索的威力,暴力出奇迹。当你做不到题的时候,奇葩搜索会得打出题人脸的。蒟蒻的笔者在NOIP2012DAY2T3就依靠搜索拿了40分(SX不会正解,你去惹啊),大家还可以参考丽姐在CTSC201310分钟搜索怒A题的经历。

  然后是DPDP入门难,入了门以后NOIPDP就基本能应付了。但是DP博大精深,至今笔者都没有玩转高难度DPDP入门可以参看黑书,刘汝佳大神讲得很清楚了(反正我觉得是我看过的讲得最好的),然后就刷题吧,把NOIP动规和题库前2页题梳理刷完,应该能入门了。

至于DP优化反正就2种优化状态和优化转移。状态优化无非就是去掉冗余或者转化描述方式。优化转移无非就是继承,剪枝,数据结构优化。总而言之,对于动规要多刷题。

  最后贪心了,贪心出题人想怎么考就怎么考,广泛难度大,所以要先掌握基本的贪心套路(怎么掌握?喊学长推荐经典题目吧,有很多东西都是模板)。然后是独立思考能力,一定要充分思考才看题解,因为贪心需要思维发散,要多想才能有提高。

  至于其他东西也要学好,跟着老师的步调走,但是这3样如果不行的话请在别人耍游戏的时候刷题!如果学得差不多了,那么结合一点点RP就能拿到一等奖了,而且很轻松。这个阶段建议多读一读导刊和做题库前7页的题。当然如果NOIP要考500+或者满分,这点水平是远远不够看得。

                                                                进阶篇

 如果经历了上一阶段,说明你已经不仅仅满足于NOIP拿一等奖了。你还需要NOIP400+500+为省队做准备了。那么你需要的是配合大白书(计算几何以及难一点的数学可以无视)+较简单的省选题(题库上AC人数较多的)+COCI的简单题,没什么好说的,这个阶段你需要大量刷题,然后独立看论文和题解,要熟练掌握NOIP常用的算法并且要自学超纲的算法并且要开始改善你写代码的速度以及多看别人的代码来使自己代码更简洁高效。当你在平常模拟考试都能考出200+的成绩,说明你就差不多了。

 如果你NOIP考得很好,留下来冲省队。那么恭喜你即将成为一位码农了- -,开始壮烈的人生。省队内容比NOIP多了很多倍,才开始冲省队建议配合大白书,黑书然后刷COCI以及CFC,D。个人超级推崇COCICF的题,因为质量高,不繁琐,思维适中。关键是题解写得好,很多标程代码写得特别漂亮!这个阶段就不能回避计算几何和数学了,多抽一抽空余时间把数学和几何知识自学了(如果想进A队的话。。A队和B队的AU线可是有差距的)。

 如果学完了大白书和黑书。那么基本算法你都会了,这个时候你就需要怒刷BZOJ,因为COCI的题美中不住就是编程难度低,主要考思维基本用不上高难得算法。BZOJ汇集了各省省选以及各大比赛的题目,值得一刷。当然所谓的刷并不要求每道题都写代码,有些看懂题解就可以过了,这个需要酌情考虑,当然也要放弃一些太难得题(纯属浪费时间)。

  如果你没失误进队,那么恭喜恭喜了。如果你题都刷得够多了,就要尝试总结一下自己刷的题和会的算法。这个阶段建议多总结,可以看国家集训队论文查漏补缺,要多考试,锻炼应试技巧,还是推荐CF,多打打比赛,了解最新的出题方向了

 然后你没失误就AU了,ORZ,肯定不止是RANK37!!

                                                                超神篇

  当你不止是RANK37的时候这篇文章已经不能帮你了。因为你已经有了自己的思考模式和学OI的习惯。后面的路只能考你自己摸索了,加油NSOI的第一块国际金牌就是你洛!   

0 0