摘要:
递归 引入 什么是递归?先看大家都熟悉的一个民间故事:从前有座山,山上有座庙,庙里有一个老和尚在给小和尚讲故事,故事里说,从前有座山,山上有座庙,庙里有一个老和尚在给小和尚讲故事,故事里说……。象这样,一个对象部分地由它自己组成,或者是按它自己定义,我们称之为递归。 一个函数、过程、概念或数学结构, 阅读全文
摘要:
前缀和 前缀和,顾名思义,就是所有前缀之和,给一个最基本的例子: 如图,a为原始数组,s为完成预处理后的数组,很容易看出来s[ i ]=s[ i - 1 ]+a[ i ],而也就是s[ i ]=a[1]+a[2]+……+a[ i ],需要注意的是记s[0]=0。 那么,如果我想要知道一个区间的区间和 阅读全文
摘要:
队列的概念 在说队列之前,先回忆一下栈是什么,我们一般说栈是一个先进后出的数据结构,而队列就是先进先出的数据结构。 队列是定在表的一端进行插入,表的另一端进行删除。 通常,我们称进数据的一端为队尾,出数据的一端为队首(这边需要注意,经常会记反起码我是这样的),数据元素进队列的过程称为入队,出队列的过 阅读全文
摘要:
定义 排列 排列,一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列。特别地,当m=n时,这个排列被称作全排列。 用Αnm表示“从n个元素里取m个元素,排成一排的方案数”,也就是Αnm=n!/(n-m)! ,将它称为排列数。 注:n!即为n 阅读全文
摘要:
介绍 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相 阅读全文
摘要:
介绍 vector(矢量; 向量),vector是C++标准模板库(STL)中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放 阅读全文
摘要:
题目背景(题目链接) 题目描述 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。 在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。 给定起点坐标和终点坐标,每个方格最多经过一次,问有多少种从起点坐标到终点坐标的方案。 输入格式 第一行为三个正整数 N,M,T 阅读全文