
算法学习
文章平均质量分 74
ghost_him
依然在c++的道路上摸爬滚打。。。
展开
-
第十四届蓝桥杯大赛软件赛省赛-试题 B---01 串的熵 解题思路+完整代码
对于一个长度为 n 的 01 串 $S = x_{1} x_{2} x_{3} ... x_{n}$,香农信息熵的定义为 $H(S ) = − {\textstyle \sum_{1}^{n}} p(x_{i})log_{2} (p(x_{i}))$,其中 $p(0)$, p $(1)$ 表示在这个 $01$ 串中 $0$ 和 $1$ 出现的占比。比如,对于 $S = 100$ 来说,信息熵 $H(S ) = − \frac{1}{3} log_{2} ( \frac{1}{3} ) − \frac{2}原创 2023-04-08 15:58:56 · 6669 阅读 · 4 评论 -
快速求解组合数
组合是数学的重要概念之一。从n个不同元素中每次取出m个不同元素0⩽m⩽n,不管其顺序合成一组,称为从n个元素中不重复地选取m个元素的一个组合。所有这样的组合的种数称为组合数。本文将通过动态规划的思维和数学方法来求解组合数。more。原创 2023-03-26 10:27:03 · 719 阅读 · 0 评论 -
算法分析与设计大作业--解数独
算法分析与设计作业--解数独原创 2022-06-22 09:43:53 · 1081 阅读 · 0 评论 -
算法分析与设计作业--动态规划
算法分析与设计原创 2022-06-22 09:40:47 · 192 阅读 · 0 评论 -
BFS求n-皇后问题
使用的是最小步数模型原创 2022-06-13 08:48:02 · 420 阅读 · 0 评论 -
手搓哈希表
算法学习开放寻址法 + 拉链法原创 2022-05-01 01:56:06 · 345 阅读 · 0 评论 -
图论问题的算法 (C++)
图论问题的算法有向图的拓扑排序单源最短路径算法多源最短路径算法最小生成树算法染色法判定二分图原创 2022-04-07 19:43:30 · 2205 阅读 · 0 评论 -
贪心区间类型题目的解法 (C++)
区间选点 最大不相交区间数量 区间分组 区间覆盖 区间合并原创 2022-04-05 23:36:24 · 1063 阅读 · 0 评论 -
算法笔记 离散化(整数离散化)
离散化(整数离散化)处理的问题: 数值很大, 个数很小 (例如, 一堆数的范围为[−109,109][-10^{9} , 10^{9}][−109,109], 共10510^{5}105 个数核心思路将这些离散的数映射成一个下标从0开始的连续的自然数例如: a[5] = {1, 3, 100, 2000, 1e5}可以离散化为他的下标, 即0,1,2,3,4注意点:a[i]中可能包含相同的元素, 所以需要去重vector<int> alls;sort(alls.begin()原创 2022-04-03 00:14:47 · 583 阅读 · 0 评论 -
排序(快排 + 归并)
排序快排思路确定分界点 x(左端点, 右端点, 中间值, 随机)调整区间,使得所有小于等于x的数都在左半边, 所有大于等于x的数都在右半边递归处理左右两段题目快速排序给定你一个长度为 nnn 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 nnn。第二行包含 nnn 个整数(所有整数均在 1∼1091∼10^{9}1∼109 范围内),表示整个数列。输出格式输出共一行,包含 nnn 个整数,表示排好原创 2022-04-02 14:31:42 · 92 阅读 · 0 评论 -
数据结构 线段树
线段树的原理+应用原创 2022-03-30 16:26:45 · 103 阅读 · 0 评论 -
算法笔记 差分约束
(每个不等式称为一个**约束条件**,都是两个未知量之差小于或等于某个常数)在算法竞赛中,很多题目会给出(或隐性地给出)一系列的**不等关系**,我们可以尝试把它们转化为差分约束系统来解决。原创 2022-03-28 21:07:22 · 152 阅读 · 0 评论 -
蓝桥杯 A* 算法
A* star算法与dijkstra算法相似思想对宽搜的一个优化: 若所有的边权都是非负的, 那么就可以用启发函数来优化BFS的过程启发函数只是改变了状态搜索的顺序, 优先搜索最有可能是答案的状态, 从而减少搜索的状态数与dijkstra算法的区别dijkstra寻找的是从某个点到所有点的最小的距离A* star寻找的是从某一个点开始到目标点的最小值的距离特点图中的点数特别多, 多到无法将所有点的最短距离求出来核心的公式dist[s] + f(s) // 当前点到起点的原创 2022-03-13 13:03:10 · 396 阅读 · 0 评论 -
整数划分问题 动态规划解决 (C++)
将一个整数 $N$ 划分成 $M$ 个数字,使得这 $M$个数字的总和为 $N$ 其中, 划分出来的整数可以为 $0$ , 同时不同的排列算一种组合, 求总共能有几个不同的组合原创 2022-02-21 20:52:42 · 2105 阅读 · 0 评论 -
迷宫寻路算法---深度优先算法(的魔改版)(基于python)
总体目录版权及协议声明本文章遵循CC BY-NC-SA 4.0协议,即知识共享-署名-非商业性使用-相同方式共享更加舒服的阅读方式该文章的pdf版,排版更舒服(其实是因为不会csdn的排版)文章的pdf版:链接:https://pan.baidu.com/s/19y-vcSSyCPr5b22cXd3jLw提取码:2233代码:链接:https://pan.baidu.com/s/1Nfj-CZMyU1T0Gz2n2TjXRw提取码:2233一. 深度优先算法的原理与思路(上一篇文章的原原创 2021-04-30 21:27:29 · 2727 阅读 · 1 评论 -
迷宫生成算法---深度优先算法(基于python)
迷宫生成算法---深度优先算法总体的目录版权及协议声明1. 深度优先算法的原理与思路二.迷宫的制作迷宫的总体的创建。三.代码的实现总体的目录版权及协议声明本文章遵循CC BY-NC 4.0协议,即允许共享,不允许商用,且必须署名1. 深度优先算法的原理与思路首先来看一下算法导论上的解释:深度优先搜索总是对最近才发现的结点v的出发边进行探索,直到该结点的所有出发边都被发现为止。一但结点v的所有出发边都被发现,搜索则“回溯”到v的前驱结点(v是经过该结点才被发现的),来搜索该前驱结点的出发边。该过原创 2021-04-26 00:24:58 · 3654 阅读 · 1 评论