算法
文章平均质量分 83
Junieson
不放弃任何细小的疑惑,让我们一起学习
展开
-
最短路径—— Dijkstra和Floyd算法java
算法介绍可以看我的数据结构专栏import java.awt.print.Book;import java.util.ArrayList;import java.util.LinkedList;import java.util.Scanner;class Main { public static void main(String[] args) { Scanner sc =...原创 2020-05-08 12:40:15 · 347 阅读 · 0 评论 -
【蓝桥杯】 stick回溯法详解(复杂且需要大量剪枝的子集树)
问题描述 George took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forgot how many sticks he ...原创 2020-02-29 22:51:57 · 600 阅读 · 0 评论 -
【蓝桥杯】糖果 回溯法求解
【问题描述】糖果店的老板一共有 M 种口味的糖果出售。为了方便描述,我们将 M 种口味编号 1 ∼ M。小明希望能品尝到所有口味的糖果。遗憾的是老板并不单独出售糖果,而 是 K 颗一包整包出售。幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。【输入格式】第一行包含三个整数 N...原创 2020-02-28 18:48:17 · 757 阅读 · 0 评论 -
【蓝桥杯】完全二叉树的权值题解
试题 G:完全二叉树的权值时间限制:1.0s 内存限制:256.0MB【问题描述】给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 A1, A2, ··· AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。 注:根的深度是 1...原创 2020-02-24 21:10:05 · 1257 阅读 · 2 评论 -
【蓝桥杯】迷宫问题详解,辨析dfs和回溯
定义一个二维数组:int maze[5][5] = {0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,}; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。输入第一行: 整数m,n第二行: 整型二维数组输出 左上角到右下角的最短路径步数和路线,格...原创 2020-02-21 21:14:35 · 1178 阅读 · 0 评论 -
贪心算法(1):活动安排问题
题目设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si<fi。如果选择了活动i,则它在半开时间区间[si ,fi )内占用资源。若区间[si ,fi )与区间[sj,fj )不相交,则称活动i与活动j是相容的。当 si ≥ fj 或 sj ≥ fi...原创 2019-05-05 16:26:26 · 4097 阅读 · 0 评论 -
贪心算法(2):会场安排问题(涂色问题)
题目假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数)。样例输入51 2312 2825 3527 8036 50输出3题解1、 问题的贪心选择性质证明:首先将会场安排问题数学化,...原创 2019-05-05 16:48:45 · 3873 阅读 · 0 评论 -
贪心算法(3):最优服务次序问题
题目设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。有1处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。样例输入:1056 12 1 99 1000 234 33 55 99 812输出:532.00题解每次让占用时间最少的人先上,注意求所有顾客的等待时间和,不是机器被占用的时...原创 2019-05-06 21:19:01 · 1636 阅读 · 1 评论 -
贪心算法(4):汽车加油问题
题目一辆汽车加满油后可行驶nkm。旅途中有若干加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最算法设计:对于给定的n和k个加油站位置,计算最少加油次数据输入:n:表示汽车加满油后可行驶nkm k:旅途中有k个加油站 k+1个整数:表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,汽车已加满油。第k+1个加油站表示目的地输入加满油行驶的距离n,和加油...原创 2019-05-06 21:28:08 · 1947 阅读 · 0 评论 -
算法笔记:详细总结分治法,动态规划,贪心算法以及各算法典型例题
文章目录一,三种算法的基本思想分治法动态规划贪心算法二,三种算法的对比分治与动态规划。贪心与动态规划。三,三种算法的基本题型(不断更新中。。。)分治法动态规划贪心一,三种算法的基本思想分治法分治法的基本思想是将一个规模为n的问题分解为k个规模较小的问题,这些子问题互相独立且与原问题相同(所以可以递归,递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。动态规划动态规划算法和分治法...原创 2019-05-05 15:12:48 · 1570 阅读 · 0 评论 -
动态规划(5):最长回文字串
题目给出一个字符串S, 求S 的最长回文子串(连续)的长度。样例输入:PATZJUJZTACCBCC输出:9题解最优子结构:如ATZJUJZTA是回文子串,那么它字串TZJUJZT一定是回文子串,且长度等于TZJUJZT的长度+2;重复子问题:如求ATZJUJZTA和TZJUJZT的长度,都会用到JUJ的长度状态转移公式:dp[i][j] 表示从字符A[i]到A[j]的回文串长度...原创 2019-05-04 16:44:30 · 436 阅读 · 0 评论 -
输油管道问题-分治法求解
题目要求:某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x坐标(东西向)和y坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置?算法设计的思想:1.问题实际上可以转化成一维问题,即油井到管道的距离只喝纵坐标有关,故可以将对...原创 2019-03-22 22:22:35 · 6809 阅读 · 6 评论 -
详解动态规划石子合并问题(直线型, 环形)
题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,合并的花费为这相邻两堆之和试设计出1个算法,计算出将N堆石子合并成1堆的最小花费和最大花费.输入输出格式输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输入示例44 4 5 9输出示例4354算法分析动态...原创 2019-04-05 10:39:34 · 6746 阅读 · 2 评论 -
详解拦截导弹问题(动态规划)
题目拦截导弹某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹,拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此不可能拦截所有的导弹。输入----导弹依次飞来的高度,不大于 30000 的正整数389 207 155 300 299 170 158 ...原创 2019-04-07 18:50:08 · 19702 阅读 · 9 评论 -
详解编辑距离问题(动态规划)
问题描述:对于序列S和T, 它们之间的距离定义为: 对二者其一进行几次以下操作: 1, 删除一个字符; 2, 插入一个字符; 3, 改变一个字符. 每进行一次操作, 计数增加1. 将S和T变为相等序列的最小计数就是两者的编辑距离(edit distance)或者叫相似度. 请给出相应算法及其实现.分析:最优解的结构分析假设序列S和T的长度分别为m和n, 两者的编辑距离表示为edit[m][...原创 2019-04-09 22:00:03 · 1613 阅读 · 0 评论 -
动态规划(1):数塔问题
题目一些数字排成数塔的形状,其中第一层有一个数字,第二层有两个数字… 第n 层有n 个数字。现在要从第一层走到第n 层,每次只能走向下一层连接的两个数字中的一个,问:最后将路径上所有数字相加后得到的和最大是多少?样例558 312 7 164 10 11 69 5 3 9 4题解最优子结构:从5开始到结尾的最大和一定包含从8或者从3到结尾的最大和重叠子问题:求8到结尾的,和...原创 2019-05-03 16:21:05 · 3024 阅读 · 0 评论 -
动态规划(2):最大连续字串和
题目给定一个数字序列A1,A2,…, An’ 求i, j (1~ 医j~n), 使得Ai+···+Ai 最大,输出这个最大和。样例输入6-2 11 -4 13 -5 -2输出20题解最优子结构:以13结尾的最大连续字串和一定包括,以-4结尾的最大连续字串和 与 “13”这个串的最大连续字串和(就是13本身),这两个子问题的其中一个;重复子问题:求以13结尾的和以-5结尾的最大...原创 2019-05-03 17:25:48 · 1340 阅读 · 1 评论 -
动态规划(3):最长非递减子序列
题目在一个数字序列中,找到一个最长的子序列(可以不连续),使得这个子序列是不下降(非递减)的。样例输入81 2 3 -9 3 9 0 11输出6题解最优子结构(举例):以3结尾的最长非递减字串,它包含以2结尾的最长非递减字串重复子问题(举例):以9和以3结尾的最长非递减字串,都会会包含以2结尾的最长非递减字串;状态转换公式:初值 :dp[i]=1dp[i]=max(dp...原创 2019-05-03 21:22:27 · 4199 阅读 · 0 评论 -
动态规划(4):最长公共子序列长度
题目给定两个字符串(或数字序列) A 和B, 求二个字符串,使得这个字符串是A 和B 的最长公共部分的长度(子序列可以不连续)样例输入sadstoryadminsorry输出6题解思路:如果两个串的最后结尾的字符相同,其最长公共子序列长度=分别去掉结尾字符剩下的部分的最长公共子序列长度+1;不相同,则转化为相同:在其中任意一个串上补与另一个串结尾字符相等的字符,然后转化成...原创 2019-05-04 13:36:38 · 1673 阅读 · 0 评论 -
线性时间选择算法的分治思想:邮局选址问题和士兵战队问题
一. 实验题目1. 邮局选址问题在一个按照东西和南北方向划分成规整街区的城市里,n 个居民点散乱地分布在不同的街区中。用 x 坐标表示东西向,用 y 坐标表示南北向。各居民点的位置可以由坐标(x,y) 表示。街区中任意 2 点(x1,y1) 和(x2,y2) 之间的距离可以用数值|x1-x2|+|y1-y2| 度量。 居民们希望在城市中选择建立邮局的最佳位置,使n 个居民点到邮局的距离...原创 2019-03-25 21:57:29 · 2510 阅读 · 1 评论