知识总结

一、编译工具

由于考试上机时,编译的工具较少,所以我来科普一下编译器的使用方法。

Dev-c++

详情点击此博客:点击这里

二、NOIP前必须记住的30句话

详情点击此博客:点击这里

三、复习提纲

贪心

概念

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。

特性

  1. 随着算法的进行,将积累起其它两个集合:一个包含已经被考虑过并被选出的候选对象,另一个包含已经被考虑过但被丢弃的候选对象。
  2. 有一个函数来检查一个候选对象的集合是否提供了问题的解答。该函数不考虑此时的解决方法是否最优。
  3. 还有一个函数检查是否一个候选对象的集合是可行的,也即是否可能往该集合上添加更多的候选对象以获得一个解。和上一个函数一样,此时不考虑解决方法的最优性。
  4. 选择函数可以指出哪一个剩余的候选对象最有希望构成问题的解。
  5. 最后,目标函数给出解的值。

基本思路

  1. 建立数学模型来描述问题
  2. 把求解的问题分成若干个子问题。
  3. 对每一子问题求解,得到子问题的局部最优解。
  4. 把子问题的解局部最优解合成原来解问题的一个解。
    实现该算法的过程:
    从问题的某一初始解出发;
    while 能朝给定总目标前进一步
    do
    求出可行解的一个解元素;
    由所有解元素组合成问题的一个可行解。

题目

排座椅(点击这里
笨笨的西瓜种植(点击这里

总结

贪心的问题主要要抓住要这道题贪心什么,怎么贪,怎么实现贪心三点就可以了。~(≧▽≦)/~啦啦啦


分治

概念

分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。

基本思想

当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。

总结

分治主要就是把要解决的问题划分成如干个规模较小的同类问题,然后用较简单的方法求解,最后按原问题的要求,把子问题的解逐层合并构成原问题的解。


搜索

概念

搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。

运算原理

搜索算法实际上是根据初始条件和扩展规则构造一棵“解答树”并寻找符合目标状态的节点的过程。所有的搜索算法从最终的算法实现上来看,都可以划分成两个部分——控制结构(扩展节点的方式)和产生系统(扩展节点),而所有的算法优化和改进主要都是通过修改其控制结构来完成的。其实,在这样的思考过程中,我们已经不知不
觉地将一个具体的问题抽象成了一个图论的模型——树,即搜索算法的使用第一步在于搜索树的建立。
搜索运算原理
由图一可以知道,这样形成的一棵树叫搜索树。初始状态对应着根节点,目标状态对应着目标结点。排在前的结点叫父结点,其后的结点叫子结点,同一层中的结点是兄弟结点,由父结点产生子结点叫扩展。完成搜索的过程就是找到一条从根结点到目标结点的路径,找出一个最优的解。这种搜索算法的实现类似于图或树的遍历,通常可以有两种不同的实现方法,即深度优先搜索(DFS)广度优先搜索(BFS)

题目

犯罪团伙(点击这里
根据两种遍历顺序确定树结构(点击这里
母亲的牛奶(点击这里
取石子游戏(点击这里
仙岛求药(点击这里
部落卫队(点击这里
Lake Counting(点击这里
红与黑(点击这里

总结

搜索主要就是要建立一棵搜索树,然后根据题目的数据范围和时间复杂度,选择到底是深度优先搜索(DFS),还是广度优先搜索(BFS)


DP

概念

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。1957年出版了他的名著《Dynamic Programming》,这是该领域的第一本著作。

分类

动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。

举例

线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;
区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等;
树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;
背包问题:01背包问题,完全背包问题,分组背包问题,二维背包,装箱问题,挤牛奶;


图论

概念

图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式。很多问题都可以转化为图论问题,然后用图论的基本算法加以解决。遗传算法是解优化问题的有效算法,而并行遗传算法是遗传算法研究中的一个重要方向,受到了研究人员的高度重视。

题目

犯罪团伙(点击这里
最短路径问题(点击这里
亲戚(点击这里

总结

我觉得这些题主要抓住题目的意思,按照题目的意思求解,就可以了。点击一下。↑↑↑↑↑

发布了80 篇原创文章 · 获赞 129 · 访问量 23万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览