算法入门
文章平均质量分 66
之墨_
这个作者很懒,什么都没留下…
展开
-
数据结构与算法—图论(广搜迷宫问题)
这里写目录标题题解应用思路代码实现题解应用阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪迷宫用一个 R×C 的字符矩阵来表示 字符 S表示阿尔吉侬所在的位置字符 E 表示奶酪所在的位置字符 # 表示墙壁字符 . 表示可以通行阿尔吉侬在 1个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一原创 2021-12-19 19:20:33 · 843 阅读 · 0 评论 -
数据结构与算法—印章问题
动态规划—印章问题讲解传送门感谢大佬资源限制时间限制:1.0s 内存限制:256.0MB问题描述共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。输入格式一行两个正整数n和m输出格式一个实数P表示答案,保留4位小数。样例输入2 3样例输出0.7500数据规模和约定1≤n,m≤20用动态规划的思想(也有直接用公式,没找到)#include <iostream>#include <cmath>using n原创 2021-11-18 00:25:27 · 1515 阅读 · 0 评论 -
数据结构与算法—01背包问题
0-1背包问题有人夜里看海,有人AcWing第二题都做不出来QAQ有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值输出格式输出一个整数,表示最大价值数据范围0<N,V≤10000<原创 2021-11-17 20:57:50 · 242 阅读 · 0 评论 -
数据结构—堆与堆排序
数据结构—堆与堆排序堆堆的性质堆排序堆堆就是一种数据结构,就是树的一个特殊例子——完全二叉树对于完全二叉树,简单理解就是一颗二叉树只有倒数第二层可以允许子节点不全满,但只能是左子树。堆的性质大顶堆:每个节点的值都大于或者等于它的左右子节点的值小顶堆:每个节点的值都小于或者等于它的左右子节点的值而在实际使用中,我们一般用数组进行实现:存储结构如下:95823471354289对于大顶堆与小顶堆的数组有以下两个性质大顶原创 2021-11-17 13:05:37 · 479 阅读 · 0 评论 -
数据结构—串、KMP模式匹配算法
数据结构—串串顺序串代码实现串的模式匹配BF 算法代码实现KMP算法代码实现求next数组的代码KMP算法代码改进代码求nextVal修正的KMP算法串串(string)是由零个或多个字符组成的有限序列。含零个字符的串称为空串,用Ø表示。串中所含字符的个数称为该串的长度(或串长)。通常将一个串表示成"a1a2a3a4…“的形式,其中最外边的双引号(或单引号)不是串的内容,它们是串的标志,用于将串与标识符(如变量名等)加以区别。每个 a(1≤i≤n)代表一个字符,不同的机器和编程语言对合法字符(即允许使用原创 2021-11-14 11:34:54 · 752 阅读 · 0 评论 -
Java数据结构—稀疏数组
Java数据结构—稀疏数组问题引入二维数组与稀疏数组二维→稀疏代码实现稀疏→二维代码实现课后练习问题引入要用一个数组将下图所示情况进行抽象表示可以用如下一个数组进行表示但这样的弊端很明显:重复的0元素太多并且得到11*11的一个庞大的矩阵所以可以引入稀疏数组简化数据的表示:rowcolval11112121232这样就得到了一个3*3的矩阵,这个数组表示较前者简洁许多二维数组与稀疏数组二维→稀疏遍历原始的二维数组,得到有效数据的个数原创 2021-09-18 15:41:23 · 197 阅读 · 0 评论 -
Java数据结构-队列
Java数据结构-队列队列数组模拟队列思路示意图代码实现数组模拟环形队列分析说明思路代码实现队列➢队列是一个有序列表,可以用数组或是链表来实现。➢遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出数组模拟队列思路队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图,其中maxSize是该队列的最大容量因为队列的输出、输入是分别从前后端来处理,因此需要两个变量front 及rear 分别记录队列前后端的下标,front会随着数据输出而改变,而rear原创 2021-09-18 15:40:35 · 73 阅读 · 0 评论 -
前缀和、差分
前缀和&差分一维前缀和(入门算法QAQ、嘤嘤嘤为什么我这么菜)一维前缀和有arr:1 3 7 5 2那么它的前缀和数列 sum:1 4 11 16 18sum[i] = sum[i-1] + arr[i] i>0sum[0] = arr[0] i=0当我们要求某几个区间的和时,用前缀和就可以很方便快捷的计算比如在 1 3 7 5 2 中[0,3] = 16 [2,4] = 14 [3,4] = 7如果直接算的话比较麻烦,原创 2021-07-08 17:29:02 · 106 阅读 · 0 评论