关于信息学竞赛基础

来源:百度知道 编辑:UC知道 时间:2024/05/21 14:07:35
我是一个初中生,比较向往信息学竞赛,如果将来攻信息学,现在应该打好哪些基础呢?推荐基本入门书籍..........

里主要讲一下新手的进阶。侧重对TOJ题目的归类和提示。相信对新手能有一定的帮助。

前20题都是基础中的基础,着重考察选手对编程语言的熟悉程度,如果对pascal或c的使用还不熟练的话做这些题可以帮助熟练编程。这些题也可作为C、Pascal的课程作业。如果觉得做这些题有困难,那不要紧,只要用心看看介绍编程的书,肯定可以弄懂的。

做完前20题后要看一些基础的算法书籍,把基本的算法搞懂。像递归、二分、宽搜、深搜、简单的图论、数论、简单的组合数学。重点根据书上的例题理解算法的实质,思想,能做到有一定领悟。这时需要做一些题目来巩固了。

首先可以做搜索题,搜索是博大精深的,诸多细节技巧都需要靠平时的积累领悟,根据自己练习的目的挑一些题练习。
然后可以做简单的数学题,对组合数学、数论有个大致的概念。
再然后可以做DP(Dynamic Programming)类题目了。DP也是非一日之功,练好DP就像练好了内功,这时可以做一些DP的基础题,体会一下,然后做一些提高题,如果不会做,一定要自己想通为什么别人这样设定状态数组,他的技巧在哪里。oibh上很多的国家集训队关于DP的论文是必看的。
图论里有很多基础的东西需要学习,先把图论里面基本的定义看懂,然后把经典的算法看懂,比如最短路、生成树、割点、连通分量等等。如果不会做,一定要好好看书。

很多新手会问碰到不会做的题目怎么办。首先应该考察一下为什么不会做这题,如果是书本上的知识点没掌握,那要赶紧把书本找来,仔细理解之后再来想这题。如果知识点基本都掌握了,那么可以利用网络的资源,多搜索一下关于这题的讨论,看看别人是怎么想的,看是否可以给自己提供思路。总之一条,要自己多开动脑子。重在理解这一题的算法,而不是只知道算法,自己把它编程实现了就算了。对待算法和程序要用严谨的态度,没有搞懂的地方要花力气把它搞懂,这样才能不断提高。

看书是必须的,而且也是迅速提高的最好方法,不要等到做题时才去理解书上的知识点,而要对知识点有了充分的理解后再去做题,这样才能事半功倍,否则看到难题,从哪方面下手的思路都没有。

关于刚保送进来的同学,在同济大都是noip一等进来的,绝大部分