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树,阶乘编码,*平衡树。最后就是对BFS和DFS的选择。这个自己体会吧~~~什么A*,IDA*,Dancing Links,事实上对于拿一等奖没什么帮助。

不要小看搜索的威力,暴力出奇迹。当你做不到题的时候,奇葩搜索会得打出题人脸的。蒟蒻的笔者在NOIP2012DAY2T3就依靠搜索拿了40分(SX不会正解,你去惹啊)。大家还能够參考丽姐在CTSC2013上10分钟搜索怒A题的经历。

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

至于DP优化反正就2种优化状态和优化转移。状态优化无非就是去掉冗余或者转化描写叙述方式。

优化转移无非就是继承,剪枝。数据结构优化。总而言之。对于动规要多刷题。

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

至于其它东西也要学好,跟着老师的步调走,可是这3样假设不行的话请在别人耍游戏的时候刷题!假设学得差点儿相同了。那么结合一点点RP就能拿到一等奖了。并且非常轻松。

这个阶段建议多读一读导刊和做题库前7页的题。当然假设NOIP要考500+或者满分,这点水平是远远不够看得。

进阶篇

假设经历了上一阶段,说明你已经不只满足于NOIP拿一等奖了。你还须要NOIP考400+。500+为省队做准备了。

那么你须要的是配合大白书(计算几何以及难一点的数学能够无视)+较简单的省选题(题库上AC人数较多的)+COCI的简单题,没什么好说的,这个阶段你须要大量刷题,然后独立看论文和题解,要熟练掌握NOIP经常使用的算法而且要自学超纲的算法而且要開始改善你写代码的速度以及多看别人的代码来使自己代码更简洁高效。当你在寻常模拟考试都能考出200+的成绩,说明你就差点儿相同了。

假设你NOIP考得非常好,留下来冲省队。

那么恭喜你即将成为一位码农了- -,開始壮烈的人生。

省队内容比NOIP多了非常多倍,才開始冲省队建议配合大白书,黑书然后刷COCI以及CF的C,D题。

个人超级推崇COCI和CF的题,由于质量高,不繁琐,思维适中。

关键是题解写得好。非常多标程代码写得特别美丽!这个阶段就不能回避计算几何和数学了,多抽一抽出时间余时间把数学和几何知识自学了(假设想进A队的话。

A队和B队的AU线但是有差距的)。

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

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

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

超神篇

当你不止是RANK37的时候这篇文章已经不能帮你了。

由于你已经有了自己的思考模式和学OI的习惯。后面的路仅仅能考你自己摸索了。加油NSOI第一块国际金奖的就是你罗!

版权声明:本文博客原创文章。博客,未经同意,不得转载。

更多RANK37的更多相关文章

  1. 模仿淘宝首页写的高仿页面,脚本全用的原生JS,菜鸟一枚高手看了勿喷哈

    自己仿照淘宝首页写的页面,仿真度自己感觉可以.JS脚本全是用原生JavaScript写得,没用框架.高手看了勿喷,请多多指正哈!先上网页截图看看效果,然后上源码: 上源码,先JavaScript : ...

  2. listview下拉刷新和上拉加载更多的多种实现方案

    listview经常结合下来刷新和上拉加载更多使用,本文总结了三种常用到的方案分别作出说明. 方案一:添加头布局和脚布局        android系统为listview提供了addfootview ...

  3. 分页插件思想:pc加载更多功能和移动端下拉刷新加载数据

    感觉一个人玩lol也没意思了,玩会手机,看到这个下拉刷新功能就写了这个demo! 这个demo写的比较随意,咱不能当做插件使用,基本思想是没问题的,要用就自己封装吧! 直接上代码分析下吧! 布局: & ...

  4. jquery 点击查看更多箭头变化,文字变化,超出带滚动条。

    从网上好了好久,没找到自己要的,自己写了一下. <!DOCTYPE html> <html> <head> <meta charset="utf-8 ...

  5. 为什么现在更多需要用的是 GPU 而不是 CPU,比如挖矿甚至破解密码?

    作者:Cascade链接:https://www.zhihu.com/question/21231074/answer/20701124来源:知乎著作权归作者所有,转载请联系作者获得授权. 想要理解G ...

  6. 如何在一台服务器上安装两个mysql或者更多

    如何在一台服务器上安装两个mysql 1       前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2       环境 mysql ...

  7. 移动端下拉刷新、加载更多插件dropload.js(基于jQuery/Zepto)[转]

    使用方法 引用css和js <link rel="stylesheet" href="../dist/dropload.min.css"> < ...

  8. Delphi中ExtractFilePath、ParamStr以及更多文件/目录操作涉及的函数。附加对应的例子

    先介绍ExtractFilePath和ParamStr ParamStr 该函数的原型是:function paramstr(i: Integer): String; 对于任何的application ...

  9. 原生js移动端touch事件实现上拉加载更多

    大家都知道jQuery里没有touch事件,所以在移动端使用原生js实现上拉加载效果还是很不错的,闲话不多说,代码如下: //获取要操作的元素 var objSection = document.ge ...

随机推荐

  1. 三层架构与MVC

    三层简介 先说说Web三层架构这个古老话题.地球人都知道web三层架构是指: • >用户接口层(UI Layer) • >业务逻辑层(Bussiness Layer) • >持久化层 ...

  2. iframe属性參数

    iframe属性參数 当点击一个子页面的链接时, 怎样将还有一个子页面嵌入到当前iframe中 仅仅要给这个iframe命名就能够了. <iframe width=420 height=330 ...

  3. [状压dp] hdu 4064 Carcassonne

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4064 Carcassonne Time Limit: 3000/1000 MS (Java/Othe ...

  4. SQL注入问题

    斌斌 (给我写信) 原创博文(http://blog.csdn.net/binbinxyz),转载请注明出处! 背景:对于ibaits参数引用可以使用#和$两种写法,其中#写法会采用预编译方式,将转义 ...

  5. 初识google多语言通信框架gRPC系列(一)概述

    gRPC概述 3/26/2016 9:16:08 AM 目录 一.概述 二.编译gRPC 三.C#中使用gRPC 四.C++中使用gRPC 一直在寻找多平台多语言的通信框架,微软的WCF框架很强大和灵 ...

  6. VB6.0“挑衅”.NET!

    来到与两年前接触VB,现在学习VB.NET,这两个看起来真的不得不说,这是相对的似(ps:一分之差,只有三个字母),计等.但他们有又什么不同呢?都说VB.NET高级,比VB究竟高级在哪里了?是不是VB ...

  7. Android 设计模式模式适配器

    自定义适配器模式:一类的接口,转换成客户的期望,也是一个接口.适配器使原本接口不是与类兼容可以无缝.下面两个图看起来更加清晰 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  8. UVa 524 Prime Ring Problem(DFS , 回溯)

    题意  把1到n这n个数以1为首位围成一圈  输出全部满足随意相邻两数之和均为素数的全部排列 直接枚举排列看是否符合肯定会超时的  n最大为16  利用回溯法 边生成边推断  就要快非常多了 #inc ...

  9. UITabBarController详细说明(简介和设置)

    [objc] view plaincopy - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions ...

  10. 乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern)

    原文:乐在其中设计模式(C#) - 责任链模式(Chain of Responsibility Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 责任链模式(Chain of R ...