1. 题目描述         汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!  题目分析 循环左移,序列S,循环左移动K位后,将序列输出。首先想到的是字符串的截取,截取后的两段字符串进行拼接。 注意判断移位n的大小;序列s的…

2020年10月30日 0条评论 0点热度 阅读全文

概述      回溯算法的效率不是很高,就起本质而言,属于穷举,不同的是提供了一个穷举的思路:回溯。回溯算法也称试探法,基本思想是:从一条路往前走,能进则进。 what      回溯法采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。回溯法通常用最简单的…

2017年10月8日 0条评论 9点热度 阅读全文

概述      回溯算法的效率不是很高,就起本质而言,属于穷举,不同的是提供了一个穷举的思路:回溯。回溯算法也称试探法,基本思想是:从一条路往前走,能进则进。 what      回溯法采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案。回溯法通常用最简单的…

2017年10月8日 0条评论 4点热度 阅读全文

概述 性质 解题步骤 贪心VS动态规划 C Demo 感受 概述       贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。     个人对贪心算法的理解是:贪心是有条件的,我们也常说贪心策略选择,具有一定的时效性。而通常,基于选择的性质,往往贪心算法会做一个排序。 性质 最优子结构 当一个问题的最优解包含其子问题…

2017年9月24日 0条评论 8点热度 阅读全文

概述 性质 解题步骤 贪心VS动态规划 C Demo 感受 概述       贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。     个人对贪心算法的理解是:贪心是有条件的,我们也常说贪心策略选择,具有一定的时效性。而通常,基于选择的性质,往往贪心算法会做一个排序。 性质 最优子结构 当一个问题的最优解包含其子问题…

2017年9月24日 0条评论 7点热度 阅读全文

讲得极好,全文一字不漏转载过来!原文链接已附上。 ----------------------------------------------- 作者: 阮一峰 日期: 2013年5月 1日 原文地址:点击打开链接 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起…

2017年4月14日 0条评论 5点热度 阅读全文

  【汽车加油问题】一辆汽车加满油后可以行驶n千米。旅途中有k个加油站。若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油。  数据输入:由文件input.txt 给出输入数据。第一行有2个正整数n和k,表示汽车加满油后可行驶nkm,且旅途中有k个加油站。接下来1行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。 结果输出:将编程计算出的最少加油次数输出到文件ouput.txt。如果无法到达…

2016年10月28日 0条评论 5点热度 阅读全文

  【汽车加油问题】一辆汽车加满油后可以行驶n千米。旅途中有k个加油站。若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油。  数据输入:由文件input.txt 给出输入数据。第一行有2个正整数n和k,表示汽车加满油后可行驶nkm,且旅途中有k个加油站。接下来1行中,有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地。 结果输出:将编程计算出的最少加油次数输出到文件ouput.txt。如果无法到达…

2016年10月28日 0条评论 6点热度 阅读全文

题目 在n*m的棋盘中,马只能走日子,马从位置(x,y)处出发,把棋盘的每一点都走一次,且只走一次,找出所有的路径。 demo实现 棋盘设置为5*4,初始位置设置为(0.0) 算法重点 回溯 在递归后方将坐标置为初始状态0。 当路径错误的时候,能够把路径恢复到走之前的状态。 具体的实现,在注释中已经写得比较清楚。 #include<iostream> using namespace std; //坐标固定的马有八种走的方式 //用数组进行存储,方便在for中使用 int fx[8]= { 1,2,2,1…

2016年6月13日 0条评论 4点热度 阅读全文

有如图所示的七巧板,试设计算法,使用至多4种不同的颜色对七巧板进行涂色(每块涂一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案。 算法设计: 1、使用邻接矩阵表示七巧板的相邻情况 2、使用蛮力法进行搜索 最终结果: 代码: #include <iostream> using namespace std; //三角板个数 const int n=7; //邻接矩阵表,用来判断是否相邻 const int data[n][n] = { {0,1,0,0,1,0,1}, {1,0,0,1,0…

2016年6月11日 0条评论 5点热度 阅读全文