随笔分类 - 算法竞赛
蓝桥杯
摘要:字符集 一个 字符集∑是一个建立了全序关系的集合,也就是说,∑中的任意两个不同的元素α和β都可以比较大小 。字符集∑中的元素称为字符。 子串 字符串的子串S[i...j], i<=j;表示字符串S中从i到j的一段字符串,即S[i], S[i+1].......S[j] 例如字符串S:abcdefg
阅读全文
摘要:字符串匹配是计算机中的一个基本问题。字符串匹配应用很广泛,比如你想在一篇文章中找到某个关键字所在的位置,或者是你想在一份名单中找到某个名字是否出现等等。 抽象描述起来,就是我们现在有一个长度为 n 的字符串S,称为主串,有一个长度为 m 的字符串P,称为模式串。我们如何找到模式串在主串中存在的位置呢
阅读全文
摘要:什么是栈和队列 栈(stack),是一种"后进先出"(Last In First Out,LIFO)的线性表,其限制是只允许在表的一端进行插入和删除运算。比如往桌子上放盘子,往上放盘子(压栈)后,只能从最上面(栈顶)取盘子(弹栈)。 队列(queue),是一种"先进先出" (First in Fir
阅读全文
摘要:本来要先讲数组的,介于之前已经总结过可变数组vector了,故不再开一个专题去介绍用法和原理。但是要提一嘴: 数组作为数据结构可以高效地存储和查询给定索引(下标)的数据,其时间复杂度均为O(1),因为这个性质,数组可以用来模拟其他很多数据结构,但是如果要将整个数组进行移位操作,例如在中间插入和删除数
阅读全文
摘要:n进制转换为m进制(2 <= n,m <= 16) #include<iostream> #include<string> using namespace std; int CharToInt (char a) { //字母转数字 return '0'<=a && a<='9' ? a-'0':10
阅读全文
摘要:lowbit的概念 我们知道,任何一个正整数都可以被表示成一个二进制数。如: (2)10=(10)2 (4)10=(100)2 那么定义一个函数f(x) = lowbit(x),输入一个十进制数,返回二进制中最低一位的1所表示的值,如lowbit(4)=4 先了解原码 补码 反码 原码:是最简单的机
阅读全文
摘要:太难啦ww https://www.acwing.com/solution/content/147257/
阅读全文
摘要:直接看代码和注释吧qwq高精度就是模拟嘛ww 还是python好,自带高精度 #include<bits/stdc++.h> #define MAXN 10500 using namespace std; string a, b; //选择字符串。因为字符串储存了每个串的长度,可以直接调用。 int
阅读全文
摘要:和A+B problem类似 ,不多说,直接看代码和注释就好啦!ww 感觉这东西只要有个概念就行了...就是在练模拟?www其他语言似乎有大数加减乘除? 这样的高精度算法时间复杂度O(n2),n是数字位数,如果位数过大还是很慢。可以利用快速傅里叶变换的方式加速高精度乘法。(虽然都是我连傅里叶级数都没
阅读全文
摘要:“高精度”是怎么一回事? 简单来说,就是我们计算的数字太大太大了,导致已经超出了我们可以定义的范围,以至于我们不能用正常的定义来定义和计算数字,不然只能计算我们能所容纳的数字部分,无法达到要求。 比如longlong可以定义的范围在 -(2的63次方)到 2的63次方-1 如果此时数据过大,超过了l
阅读全文
摘要:#include <vector> 连续的顺序的储存结构(和数组一样的类别),但是有长度可变的特性。 构造 vector<类型> arr(长度, [初值]) 时间复杂度:O(n) 常用的一维和二维数组构造示例,高维也是一样的(就是会有点长)。 vector<int> arr; // 构造int数组
阅读全文
摘要:还记得A-B=C问题吗?在之前,我们把原序列排好序,然后变成A=B+C问题,枚举每一个元素作A,然后再序列里如果存在B+C,必然是连续的一段(一个也是),我们利用二分法以O(logN)的时间复杂度获得左右边界相减即可。现在介绍另一种方法:双指针法。 如上面说的,序列里如果存在B+C,必然是连续的一段
阅读全文
摘要:P1496 火烧赤壁 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我们首先先看数据,n<=20000,数据不多,但是范围大(-10^9<=Ai,Bi<=10^9),这时,就可以用离散化了。但是在这里我们会遇到区间重合的问题(也可以使用区间合并),如下图 本题的题意是让我们求出燃
阅读全文
摘要:在一些场景或题目中,常常会遇到数据跨度较大的一堆数据。如果需要用连续空间存储,则会有大量空闲的空间,并且遍历的时间复杂取决于最大和最小值的间距。 如果不关系数据的具体大小,只关心数据的相对顺序。离散化,就是当我们只关心数据的大小关系时,用排名代替原数据进行处理的一种预处理方法。离散化本质上是一种哈希
阅读全文
摘要:## 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 $150\%$ 划定,即如果计划录取 $m$ 名志愿者,则面试分数线为排名第 $m \times 150\
阅读全文
摘要:pair简介: pair 是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素、又不想要因此定义结构体时,使用 pair 可以很方便地作为一个代替品。 pair 实际上可以看作一个内部有两个元素的结构体,且这两个元素的类型是可以指定的,如下面的短代码所示 struct pair { t
阅读全文

浙公网安备 33010602011771号