随笔分类 - 算法学习笔记
摘要:1 字符串 Hash const ll mod[3] = {900000011, 998244353, 1000000007}; const ll bas[3] = {4493, 8111, 8527}; // you can choose your bases and modulos char s
阅读全文
摘要:1 最大公约数 (gcd) int gcd(int a, int b) {return b ? gcd(b, a % b) : a;} 2 快速幂 (递归版本) ll PowerMod(ll a, ll n, ll m = mod) { if (!n || a == 1) return 1ll; l
阅读全文
摘要:#include <cstdio> #include <cstring> bool isPrime[100000010]; //isPrime[i] == 1表示:i是素数 int Prime[5000010], cnt = 0; //Prime存质数 void GetPrime(int n)//筛
阅读全文
摘要:C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的。C++队列queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。 C++队列Queue类成员函数如下: back()返
阅读全文
摘要:题目描述 超市里有 n(n\le10^5)n(n≤105) 个寄包柜。每个寄包柜格子数量不一,第 ii 个寄包柜有 a_i(a_i\le10^5)ai(ai≤105) 个格子,不过我们并不知道各个 a_iai 的值。对于每个寄包柜,格子编号从 1 开始,一直到 a_iai。现在有 q(q\l
阅读全文
摘要:BST(Binary Search Tree),二叉搜索树,又叫二叉排序树 是一棵空树或具有以下几种性质的树: 若左子树不空,则左子树上所有结点的值均小于它的根结点的值 若右子树不空,则右子树上所有结点的值均大于它的根结点的值 左、右子树也分别为二叉排序树 没有权值相等的结点。 看到第4条,我们会有
阅读全文
摘要:转自https://www.cnblogs.com/henry-1202/p/9307927.html 浅析基础数据结构-二叉堆 目录 1.插入 2.删除 3.查询 1.堆排序 2.用两个堆来维护一些查询第k小/大的操作 中位数 3.利用堆来维护可以“反悔的贪心” 如题,二叉堆是一种基础数据结构 事
阅读全文
摘要:本题是最简单的一类动态规划,动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从子问题的解得到原问题的解。 假设本题忽略马的存在,可以把答案看成一个二维数组,f[i][j]代表当B在i,j时的方法数,显然,f[i][j]=f[i][j-1]+f[i][j-1] ,所以我们想做的就
阅读全文
摘要:洛谷P1044 栈 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 push(将一个元素进栈)。 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没
阅读全文
摘要:作者:Pecco链接:https://zhuanlan.zhihu.com/p/93647900来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 并查集被很多OIer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操
阅读全文
摘要:洛谷P1036 选数 首先想一下想要实现什么功能,我们想让它一直找数加,如果加够k个了,那么就 return 。所以得有一个数记录加了几个,但是在递归函数里呢,他不知道自己进行到哪一步,所以说就应该形参里放入这个步数 step,执行函数时首先判断是否加够k个了。 对于递归或者说深度优先搜索来说子函数
阅读全文

浙公网安备 33010602011771号