![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
文章平均质量分 65
--Xc
这个作者很懒,什么都没留下…
展开
-
动态规划经典问题----最长公共子序列
给定两个序列 X={x1,x2,x3,…,xm}和 Y={y1,y2,y3,…,yn},找出 X 和 Y 的一个最长的公共子序列。例如:X=(A,B,C,B,A,D,B),Y=(B,C,B,A,A,C),那么最长公共子序列是 B,C,B,A;分析:由于如果直接暴力破解,时间复杂度是我们避之不及的爆炸性指数。可以用动态规划分析其最优子结构,然后建立最优值的递归式,有点类似于我们中学所学数列中的通项,...原创 2018-06-02 17:43:48 · 1274 阅读 · 0 评论 -
简单搜索--马的走法
描述 在一个4*5的棋盘上,输入马的起始位置坐标(纵、横),求马能返回初始位置的所有不同走法的总数(马走过的位置不能重复,马走“日”字)。输入多个测试数据。 每组2个数,表示起始位置坐标。输出输出不同走法的总数。样例输入2 21 3样例输出45964772这道题可以直接用典型的DFS算法,把上下左右的方向换成马走法的规则就行。代码:...原创 2018-08-18 16:41:29 · 892 阅读 · 0 评论 -
快速计算----矩阵连乘--DP
给定 n 个矩阵{A1,A2,A3,…,An},其中,Ai 和 Ai+1(i=1,2,…,n−1)是可乘的。用加括号的方法表示矩阵连乘的次序,不同的计算次序计算量(乘法次数)是不同的,找出一种加括号的方法,使得矩阵连乘的计算量最小例如:A1 是 M5×10 的矩阵;A2 是 M10×100 的矩阵;A3 是 M100×2 的矩阵。那么有两种加括号的方法:(1)(A1 A2)A3;(2)A1(A2 ...原创 2018-07-05 15:46:54 · 4450 阅读 · 0 评论 -
01背包问题--记忆化搜索and动态规划
继上一篇代码的优化:分析:暴力搜索的代码可知,反复调用时有些同一参数调用了几次白白浪费了计算时间。我们可以利用记忆化数组,把已经计算过的参数的结果记录下来,下次需要用时可以直接返回结果。参数的组合为nw种,而函数内只调用2次递归,所以时间复杂度为O(nm),比起O(2^n)效率大幅度提高。代码:#include<iostream>#include<string.h>us...原创 2018-06-10 09:53:07 · 1102 阅读 · 0 评论 -
01背包问题--暴力搜索
有n个重量和价值分别为wi,vi的物品。从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值。限制条件1<=n<=1001<=wi,vi<=1001<=W<=10000输入样例:4 52 1 3 23 2 4 2输出样例:7分析:这是被称为背包问题中著名的一个问题。可以先试试最朴素的方法,直接暴力搜索,针对每个物品是否放入背包进...原创 2018-06-10 09:43:35 · 2434 阅读 · 0 评论 -
刽子手游戏
https://vjudge.net/problem/UVA-489题目大意:计算机给一个单词你猜,每次可以猜一个字母,如果单词里有那个字母,那这个单词里的所有字母都会显示出来,如果没有这个字母就说明猜错了,错误次数只有7次,你的任务是编写一个“裁判”程序,出入单词和玩家的猜测,判断玩家赢了(You win.),还是输了(You lose.),还是放弃(You chickened out.)思路:...原创 2018-06-02 09:16:29 · 743 阅读 · 0 评论 -
油田-Oil Deposits,UVA----用DFS求连通块
https://vjudge.net/problem/UVA-572题目大概意思:输入一个n行m列的字符矩阵,统计字符"@"组成多少个八连通块。如果两个字符“@”所在的格子相邻(横,竖,或对角线方向),就说它们属于同一个八连通快Sample Input1 1*3 5*@*@***@***@*@*1 8@@****@*5 5****@*@@*@*@**@@@@*@@@**@0 0Sample Out...原创 2018-06-04 20:46:08 · 347 阅读 · 3 评论 -
n皇后问题--回溯法,以DFS的方式搜索
所谓一山不能容二虎,在 n×n 的棋盘上放置彼此不受攻击的 n 个皇后。按照国际象棋的规则,皇后可以攻击与之在同一行、同一列、同一斜线上的棋子。设计算法在 n×n 的棋盘上放置 n 个皇后,使其彼此不受攻击。输入:4输出:2 4 1 33 1 4 2可行方案数:2问题分析:题目要求不同行不同列不同斜线上,因为约束条件太多和考虑复杂度,我们不可能直接每个都枚举,可以先以行为主导,每行只放一个,找到可...原创 2018-06-03 17:42:13 · 2019 阅读 · 1 评论 -
百度之星-Disk Schedule--双调旅行商问题
终于有时间更新了。。。。。Problem Description有很多从磁盘读取数据的需求,包括顺序读取、随机读取。为了提高效率,需要人为安排磁盘读取。然而,在现实中,这种做法很复杂。我们考虑一个相对简单的场景。磁盘有许多轨道,每个轨道有许多扇区,用于存储数据。当我们想在特定扇区来读取数据时,磁头需要跳转到特定的轨道、具体扇区进行读取操作。为了简单,我们假设磁头可以在某个轨道顺时针或逆时...原创 2019-02-04 20:18:13 · 230 阅读 · 0 评论