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. 哈希表之bkdrhash算法解析及扩展

    BKDRHASH是一种字符哈希算法,像BKDRHash,APHash.DJBHash,JSHash,RSHash.SDBMHash.PJWHash.ELFHash等等,这些都是比較经典的,通过http ...

  2. 0当执行游戏xc000007b错误的解决方法

    如图所示,这个错误是让很多玩家担心. 出现这个错误,可能是硬件的问题,也可能是软件的问题. 可是.因为硬件引起该问题的概率非常小,而且除了更换硬件之外没有更好的解决方法,因此本文将具体介绍怎样通过软件 ...

  3. IOS设计模式学习(20)命令

    1 前言 在面向对象中,把指令封装在各种命令对象中.命令对象可以被传递而且在指定时刻被不同的客户端复用.这一概念精心设计而来的设计模式叫做命令(Command)模式. 2 详述 2.1 简述 命令对象 ...

  4. Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程

    原文:Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程 Red Gate系列之四 SQL Data Compare ...

  5. 银行家算法java实现

    关于银行家算法的理论知识,课本或者百度上有好多资料,我就不再多说了,这里把我最近写的银行家算法的实现带码贴出来. 由于这是我们的一个实验,对系统资源数和进程数都指定了,所以这里也将其指定了,其中系统资 ...

  6. uva 10192 Vacation(最长公共子)

    uva 10192 Vacation The Problem You are planning to take some rest and to go out on vacation, but you ...

  7. Sublime Text 3 最性感的编辑历史

    ↑ ↑ ↑ ↑ ↑ 请参阅文件夹 ↑ ↑ ↑ ↑ ↑ 下载 / 装 windows / MAC OS 官网下载.双击安装,这个都会吧- linux linux下安装.一种办法是从官网下载 tar.bz ...

  8. 重新想象 Windows 8 Store Apps (22) - 文件系统: 访问文件夹和文件, 通过 AQS 搜索本地文件

    原文:重新想象 Windows 8 Store Apps (22) - 文件系统: 访问文件夹和文件, 通过 AQS 搜索本地文件 [源码下载] 重新想象 Windows 8 Store Apps ( ...

  9. java命令行HPROF Profiler(转)

    The HPROF Profiler The Heap and CPU Profiling Agent (HPROF)是JAVA2 SDK自带的一个简单的profiler代理,它通过与Java Vir ...

  10. Android采取async框架文件上传

    页面效果 须要的权限 <uses-permission android:name="android.permission.INTERNET"/> 网络訪问权限; 布局文 ...