
算法
文章平均质量分 72
sayniceoh
现在差距已经不是一点半点了,努力追赶!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
递归与分治——二分查找
描述 给定一个单调递增的整数序列,问某个整数是否在序列中。 输入 第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。 输出 每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。 输入样例 5 1 3 4 7 11 3 3 6 9原创 2016-11-09 19:37:48 · 787 阅读 · 0 评论 -
动态规划——防卫导弹
描述 一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一系列的测试导弹(这些导弹发射的间隔时间固定,飞行速度相同),该防卫导弹所能获得的信息包括各进攻导弹的高原创 2016-11-13 20:04:28 · 1890 阅读 · 0 评论 -
动态规划——最长公共子序列
描述 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=,则另一序列Z=是X的子序列是指存在一个严格递增的下标序列 ,使得对于所有j=1,2,…,k有: Xij = Zj 如果一个序列S即是A的子序列又是B的子序列,则称S是A、B的公共子序列。 求A、B所有公共子序列中最长的序列的长度。 输入 输入共两行,每行一个由字母和数字组成的字符原创 2016-11-13 19:46:32 · 325 阅读 · 0 评论 -
搜索算法——六数码
描述 现有一两行三列的表格如下: A B C D E F 把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。每种不同的填法称为一种布局。如下: 1 3 5 2 4 6 布局1 2 5 6 4 3 1 布局2 定义α变换如下:把A格中的数字放入B格,把B格中的数字放入E格,把E格中的数字放入D格,把D格中的数字原创 2016-11-13 00:35:24 · 405 阅读 · 0 评论 -
搜索算法——加一乘二平方
描述 最简单的队列的使用 给定两个正整数m、n,问只能做加1、乘2和平方这三种变化,从m变化到n最少需要几次 输入 输入两个10000以内的正整数m和n,且m小于n 输出 输出从m变化到n的最少次数 输入样例 1 16 输出样例 3 基本思路:套用搜索算法的一般模式即可。 #include #includ原创 2016-11-13 00:33:54 · 1098 阅读 · 0 评论 -
搜索算法——电子老鼠闯迷宫
描述 有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。 输入 本题包含一个测例。在测例的第一行有四个由空格分隔的整数,分别表示起点的坐标S(x.y)和终点的坐标T(x,y)。从第二行开始的12原创 2016-11-13 00:10:20 · 1225 阅读 · 0 评论 -
回溯法——穷举所有排列
描述 输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。 输入 输入一个小于10的正整数n。 输出 按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。 输入样例 3 输出样例 abc acb bac bca cba cab 直接贴代码= = #incl原创 2016-11-12 01:03:32 · 1602 阅读 · 0 评论 -
回溯法——迷宫问题
描述 给一个20×20的迷宫、起点坐标和终点坐标,问从起点是否能到达终点。 输入 多个测例。输入的第一行是一个整数n,表示测例的个数。接下来是n个测例,每个测例占21行,第一行四个整数x1,y1,x2,y2是起止点的位置(坐标从零开始),(x1,y1)是起点,(x2,y2)是终点。下面20行每行20个字符,’.’表示空格;’X’表示墙。 输出 每个测例的输出占一行,输原创 2016-11-12 00:57:08 · 501 阅读 · 0 评论 -
回溯法——堡垒问题
描述 城堡是一个4×4的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒。城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉。问对于给定的一种状态,最多能够修建几个堡垒。 输入 每个测例以一个整数n(1 输出 每个测例在单独的一行输出一个整数:最多原创 2016-11-12 00:48:04 · 1096 阅读 · 0 评论 -
回溯法——求图像的周长
描述 给一个用 . 和X表示的图形,图形在上、下、左、右、左上、左下、右上、右下8个方向都被看作是连通的,并且图像中间不会出现空洞,求这个图形的边长。 输入 首先给出m、n、x、y四个正整数,下面给出m×n的图形,x、y表示点击的位置,全0表示结束。 输出 点击的图形的周长。 输入样例 2 2 2 2 XX XX 6 4 2 3 .XXX .XXX .XXX .原创 2016-11-12 00:43:26 · 494 阅读 · 0 评论 -
回溯法——8皇后问题
描述 输出8皇后问题所有结果。 输入 没有输入。 输出 每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。 输入样例 输出样例 输出的前几行: No 1: A......原创 2016-11-12 00:34:47 · 337 阅读 · 0 评论 -
回溯法——装载问题
描述 有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。 输入 多个测例,每个测例的输入占两行。第一行一次是c1、c2和n(n 输出 对于每个测例在单独的一行内输出Yes或No。 输入样例 7 8 2 8 7 7 9 2 8 8 0 0 0原创 2016-11-12 00:17:09 · 1258 阅读 · 0 评论 -
回朔法——穷举n位二进制数
描述 输入一个小于20的正整数n,要求按从小到大的顺序输出所有的n位二进制数,每个数占一行。 输入 输入一个小于20的正整数n。 输出 按从小到大的顺序输出所有的n位二进制数,每个数占一行。 输入样例 3 输出样例 000 001 010 011 100 101 110 111 回朔法:确定了解空间的组织结构后,回溯法从开始结点(根原创 2016-11-09 20:26:02 · 2848 阅读 · 1 评论 -
递归与分治——快速排序
描述 给定一个数列,用快速排序算法把它排成升序。 输入 第一行是一个整数n(n不大于10000),表示要排序的数的个数;下面一行是用空格隔开的n个整数。 输出 输出排序后的数列,每个数字占一行。 输入样例 5 3 2 1 4 5 输出样例 1 2 3 4 5 基本思想:让数列中的一个数成为划分基准,比这个基准小的,都在它的左半边;比原创 2016-11-09 20:19:51 · 1006 阅读 · 0 评论 -
递归与分治——归并排序
描述 给定一个数列,用归并排序算法把它排成升序。 输入 第一行是一个整数n(n不大于10000),表示要排序的数的个数; 下面一行是用空格隔开的n个整数。 输出 输出排序后的数列,每个数字占一行。 输入样例 5 3 2 1 4 5 输出样例 1 2 3 4 5 基本思路:归并排序是将一组无序的数列,先一分为二,再将分过的继续一分为原创 2016-11-09 19:51:08 · 607 阅读 · 0 评论 -
动态规划——计算矩阵连乘
描述 在科学计算中经常要计算矩阵的乘积。矩阵A和B可乘的条件是矩阵A的列数等于矩阵B的行数。若A是一个p×q的矩阵,B是一个q×r的矩阵,则其乘积C=AB是一个p×r的矩阵。计算C=AB总共需要p×q×r次乘法。 现在的问题是,给定n个矩阵{A1,A2,…,An}。其中Ai与Ai+1是可乘的,i=1,2,…,n-1。 要求计算出这n个矩阵的连乘积A1A2…An最少需要多少次乘法。 输原创 2016-11-13 20:17:08 · 772 阅读 · 0 评论