随笔分类 -  我滴算法

DLX 学习笔记
摘要:Dancing Links X 用来解决精确覆盖问题以及他的一些变体 基础精确覆盖原型 栗子引入 给定一个由 01 组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个 1 考虑如下矩阵: \[ \begin{pmatrix} 0 & 0 & 1 & 0 & 1 &
89
0
0
快读快写模版
摘要:read(), write() < scanf(), printf() ios::sync_with_stdio(0)+cin,cout < cin,cout 可见快读快写还是很厉害的 再加上 __int128 可以使用, 手写读入输出就很重要了 #inclu
132
0
0
二叉堆 Heap
摘要:闲话 二叉堆是一种基础数据结构,主要应用于维护一组数据中的最大最小值。C++ 的STL中的优先队列就是使用二叉堆。 ##一.堆的性质 堆是一颗完全二叉树 堆的顶端一定是“最大”,最小”的,但是要注意一个点,这里的大和小并不是传统意义下的大和小,它是相对于优先级而言的,当然你也可以把优先级定为传统意义
56
0
0
cmp函数 の 字典序
摘要:我们都知道手写 `cmp()` 可以重载 `sort()` 的比较规则 嗯对! 要想手写出比较字典序的 `cmp()` 我们先要认识另外一个函数 `strcmp()` ## `strcmp` 函数的排面 ### 原型 ``` cpp int strcmp(const char *s1, const
124
0
0
离散化
摘要:什么是 离散化 ??? 一些数字,它们的范围很大(0-1e9),但是个数不多(1-1e5),并且这些数本身的数字大小不重要,重要的是这些数字之间的相对大小 第一种离散化 包含重复元素,并且相同元素离散化后也要相同 蒟蒻代码 const int N=1e5 + 5; int book[N],a[N];
64
0
1
单源最短路径 の 二叉堆优化的 Dijkstra
摘要:🚧🚧 SPFA 它死了 🚧🚧 可以通过构造数据使 SPFA 算法的时间复杂度退化到 O(NM) 和 Bellman-Ford 算法已经没什么区别了...QwQ 二叉堆优化的 Dijkstra 对于 无负边 的情况下可以达到 O(nlog(n)) 且很难被卡 Dijkstra是
136
0
0
最小生成树 MST
摘要:最小生成树 MST 算法 分为两种: Prim MST Kruskal MST Prim 最小生成树 啥是 Prim MST ??? Prim的思想是将任意一个节点作为根,再更新与之相邻的所有边(用一遍循环即可),再将新的离已存在树最近的节点更新并以此节点作为根继续搜 维护一个数组:dis ,记录已
83
0
0
Kosaraju 算法
摘要:一.算法简介 在计算科学中,Kosaraju算法(又称为 Sharir Kosaraju算法 )是一个线性时间(linear time) 算法, 用于找到的有向图的强连通分量。它利用了一个事实,逆图(与各边方向相同的图形反转, transpose graph)与原始图有相同的强连通分量。 逆图(Tr
261
0
1
Trie
摘要:什么是 Trie Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较。 核心思想 Trie的核心思想是空间换时间。利用字符串的公共
128
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起