![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 72
sayniceoh
现在差距已经不是一点半点了,努力追赶!
展开
-
递归与分治——二分查找
描述给定一个单调递增的整数序列,问某个整数是否在序列中。 输入第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。 输出每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。 输入样例51 3 4 7 113369原创 2016-11-09 19:37:48 · 739 阅读 · 0 评论 -
动态规划——防卫导弹
描述一种新型的防卫导弹可截击多个攻击导弹。它可以向前飞行,也可以用很快的速度向下飞行,可以毫无损伤地截击进攻导弹,但不可以向后或向上飞行。但有一个缺点,尽管它发射时可以达到任意高度,但它只能截击比它上次截击导弹时所处高度低或者高度相同的导弹。现对这种新型防卫导弹进行测试,在每一次测试中,发射一系列的测试导弹(这些导弹发射的间隔时间固定,飞行速度相同),该防卫导弹所能获得的信息包括各进攻导弹的高原创 2016-11-13 20:04:28 · 1794 阅读 · 0 评论 -
动态规划——最长公共子序列
描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=,则另一序列Z=是X的子序列是指存在一个严格递增的下标序列 ,使得对于所有j=1,2,…,k有:Xij = Zj如果一个序列S即是A的子序列又是B的子序列,则称S是A、B的公共子序列。求A、B所有公共子序列中最长的序列的长度。 输入输入共两行,每行一个由字母和数字组成的字符原创 2016-11-13 19:46:32 · 274 阅读 · 0 评论 -
搜索算法——六数码
描述现有一两行三列的表格如下:A B CD E F把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。每种不同的填法称为一种布局。如下:1 3 52 4 6布局12 5 64 3 1布局2定义α变换如下:把A格中的数字放入B格,把B格中的数字放入E格,把E格中的数字放入D格,把D格中的数字原创 2016-11-13 00:35:24 · 354 阅读 · 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 · 1042 阅读 · 0 评论 -
搜索算法——电子老鼠闯迷宫
描述有一只电子老鼠被困在如下图所示的迷宫中。这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。现给定一个起点S和一个终点T,求出电子老鼠最少要几步从起点走到终点。 输入本题包含一个测例。在测例的第一行有四个由空格分隔的整数,分别表示起点的坐标S(x.y)和终点的坐标T(x,y)。从第二行开始的12原创 2016-11-13 00:10:20 · 1155 阅读 · 0 评论 -
回溯法——穷举所有排列
描述输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。 输入输入一个小于10的正整数n。 输出按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。 输入样例3 输出样例abcacbbacbcacbacab直接贴代码= =#incl原创 2016-11-12 01:03:32 · 1506 阅读 · 0 评论 -
回溯法——迷宫问题
描述给一个20×20的迷宫、起点坐标和终点坐标,问从起点是否能到达终点。 输入多个测例。输入的第一行是一个整数n,表示测例的个数。接下来是n个测例,每个测例占21行,第一行四个整数x1,y1,x2,y2是起止点的位置(坐标从零开始),(x1,y1)是起点,(x2,y2)是终点。下面20行每行20个字符,’.’表示空格;’X’表示墙。 输出每个测例的输出占一行,输原创 2016-11-12 00:57:08 · 409 阅读 · 0 评论 -
回溯法——堡垒问题
描述城堡是一个4×4的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒。城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉。问对于给定的一种状态,最多能够修建几个堡垒。 输入每个测例以一个整数n(1 输出每个测例在单独的一行输出一个整数:最多原创 2016-11-12 00:48:04 · 1041 阅读 · 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 · 434 阅读 · 0 评论 -
回溯法——8皇后问题
描述输出8皇后问题所有结果。 输入没有输入。 输出每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。 输入样例 输出样例输出的前几行:No 1:A......原创 2016-11-12 00:34:47 · 290 阅读 · 0 评论 -
回溯法——装载问题
描述有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。 输入多个测例,每个测例的输入占两行。第一行一次是c1、c2和n(n 输出对于每个测例在单独的一行内输出Yes或No。 输入样例7 8 28 77 9 28 80 0 0原创 2016-11-12 00:17:09 · 1155 阅读 · 0 评论 -
回朔法——穷举n位二进制数
描述输入一个小于20的正整数n,要求按从小到大的顺序输出所有的n位二进制数,每个数占一行。 输入输入一个小于20的正整数n。 输出按从小到大的顺序输出所有的n位二进制数,每个数占一行。 输入样例3 输出样例000001010011100101110111回朔法:确定了解空间的组织结构后,回溯法从开始结点(根原创 2016-11-09 20:26:02 · 2764 阅读 · 1 评论 -
递归与分治——快速排序
描述给定一个数列,用快速排序算法把它排成升序。 输入第一行是一个整数n(n不大于10000),表示要排序的数的个数;下面一行是用空格隔开的n个整数。 输出输出排序后的数列,每个数字占一行。 输入样例53 2 1 4 5 输出样例12345基本思想:让数列中的一个数成为划分基准,比这个基准小的,都在它的左半边;比原创 2016-11-09 20:19:51 · 936 阅读 · 0 评论 -
递归与分治——归并排序
描述给定一个数列,用归并排序算法把它排成升序。 输入第一行是一个整数n(n不大于10000),表示要排序的数的个数;下面一行是用空格隔开的n个整数。 输出输出排序后的数列,每个数字占一行。 输入样例53 2 1 4 5 输出样例12345基本思路:归并排序是将一组无序的数列,先一分为二,再将分过的继续一分为原创 2016-11-09 19:51:08 · 519 阅读 · 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 · 631 阅读 · 0 评论