![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
JunMain
这个作者很懒,什么都没留下…
展开
-
字符串哈希的映射
字符串哈希字符串哈希,是将字符串映射成哈希值(不会冲突),当我们询问每个子串的时候,我们只要将它的哈希值获取出来(时间复杂度O(1)O(1)O(1)),那么就可以进行操作。那么我们怎么哈希映射呢?我们把字符串看出一个P进制的数例如 str = “acwing”每次预处理的时候,预处理以 i 下标结尾的字符串的哈希值,(当P = 131, Q = 2642^{64}264的时候, 99.99% 不会哈希冲突,)和预处理 P的不同次方所以, 当我们用unsigned long long 来存储原创 2021-10-28 14:43:45 · 726 阅读 · 0 评论 -
二分的练习
二分模板二分不熟悉的可以看一下二分的模板题目练习题目描述达尔星有 n 个强大的下级战士,编号 1∼n。其中第 i 名战士的战斗力为 ri。战士 a 可以成为战士 b 的战斗导师,当且仅当 ra>rb 且两人之间不存在矛盾。给定每个战士的战斗力值以及战士之间存在的 k 对矛盾关系。请你计算,每个战士可以成为多少战士的战斗导师。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 r1,r2,…,rn。接下来 k 行,每行包含两个整数 x,y,表示战士 x 和战士 y 之原创 2021-10-24 18:53:21 · 229 阅读 · 0 评论 -
新食堂的早餐搭配 (二分做法)
题目描述新食堂的早餐搭配: 阿明在一食堂选择早餐,他的想法是选择一份主食和一款饮 料,且花费不超过 x 元。一维整型数组 main 中记录了每种 主食的价格,一维整型数组 drinks 中记录了每种饮料的价 格。请问针对不同的预设参数,共有多少种购买方案。输入格式第一行输入$n, m $(表示主食饮料种类), cost(总预算)第二行输入每个主食价格第三行输入每个饮料价格输出格式输出选择一份主食和一款饮 料,且花费不超过 cost 元,的总方案数数据范围0≤m,n≤1050\leq m原创 2021-10-19 17:31:10 · 263 阅读 · 0 评论 -
蓝桥杯中常用的数学算法
文章目录算数基本定义质数试除法 O(n)O(\sqrt{n})O(n)朴素筛法求质数 (nlogn)(nlog_n)(nlogn)埃式筛法 O(nloglogn)O(nlog_{log_n})O(nloglogn) ~ O(n)O(n)O(n)线性筛法 O(n)O(n)O(n)约数试除法求约数 O(n)O(\sqrt{n})O(n)求约数个数 O(n)O(\sqrt{n})O(n)求约数之和求最大公约数求最小公倍数欧拉函数算数基本定义任何一个合数都可以写成,若干个质数相乘n=q原创 2021-10-17 15:04:52 · 821 阅读 · 1 评论 -
并查集的基本操作和用法
并查集并查集的作用:1.合并区间2.判断两个数是否再同一个集合之中3.寻找联通子图的的个数并查集的关键函数find(x)与p[]数组 寻找x的祖宗节点/* find函数用于寻找祖宗节点*/int find(int x){ if (p[x] != x) find(p[x]) return p[x];}/* p[N] 存储每个节点的祖宗节点 初始化p[N] 一开始每个节点的祖宗是他自己, 一个数作为一个集合*/for (int i = 1; i <原创 2021-10-01 17:37:24 · 401 阅读 · 0 评论 -
Tires树数据结构
TriesTries树是用来高效的 存储、查找字符串集合的数据结构例如下面五个字符串的Tries如下abbccaadacaabccbccac并且将每个字符结尾单词节点标记一下(表示存在已该点结尾的单词)可以高效的查找一个字符串是否再集合中出现,与出现的次数例如查找 “bcc”root -> b -> c -> c(有标记查找成功)查找 “abbc”root -> a -> b -> b -> c (此处c节点没有标记, 不存在以c原创 2021-10-01 17:16:36 · 418 阅读 · 0 评论 -
快速幂模板
快速幂题目描述给定 n 组 ai,bi,pia_i,b_i,p_iai,bi,pi,对于每组数据,求出 aibia_i^{b_i}aibi % pip_ipi 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含三个整数 ai,bi,pia_i,b_i,p_iai,bi,pi。输出格式对于每组数据,输出一个结果,表示 aibia_i^{b_i}aibi % pip_ipi 的值。每个结果占一行。数据范围1≤n≤100000,1≤n≤100000,1≤n≤原创 2021-09-27 19:02:04 · 126 阅读 · 0 评论 -
七周打卡剑指offer《二维数组中的查找》
二维数组中的查找题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]如果输入查找数值为7,则返回true,如果输入查找数值为5,则返回false。暴力做法 O(n2n^2n2)思路:先扫描第一行找出比target小的最大数字记录原创 2021-09-21 13:48:26 · 118 阅读 · 0 评论 -
你知道二分的实质吗?怎么样的模板才能一次就通过?
二分算法的实质二分的实质是两段性:首先根据题目提取一个命题P(x)[1,n]有些中是符合P(x)命题,是真命题[1,n]有些数字中不符合P(x)命题,是假命题根据[1,n]之中的真假命题将集合一分为二第一种情况真命题在前...原创 2021-09-20 22:02:55 · 242 阅读 · 0 评论