基础算法
文章平均质量分 53
er_sz
这个作者很懒,什么都没留下…
展开
-
IncDec Sequence(差分)
IncDec Sequence(差分) 题目链接 题目 给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。 输入格式 第一行输入正整数 n。 接下来 n 行,每行输入一个整数,第 i+1 行的整数代表 ai。 输出格式 第一行输出最少操作次数。 第二行输出最终能得到多少种结果。 数据范围 0<n≤105, 0≤ai<原创 2021-08-11 11:12:13 · 271 阅读 · 0 评论 -
离散化(模板)
离散化本质上可以看作一种哈希,离散化操作之后,可以保证一组数据在经过处理之后,其相对位置并没有发生变化。 即:当给出的数据自身,因为过大或者类型无法匹配无法作为数组下标,且影响最终结果的只有数据间的相对大小关系时,我们可以将原来的数据按照从大到小编号来处理问题,即离散化。 用来离散化的可以是大整数、浮点数、字符串等等。 例题:Acwing802.区间和 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每原创 2021-07-28 20:21:31 · 156 阅读 · 0 评论 -
c++STL基本用法
## **vector<变量>,变长数组,倍增思想** vector<int> a(10,3); 容量为10的向量,其中元素均为3 size() 返回元素个数 empty() 判空 clear() 清空 front()/back() 第一个/最后一个元素 push_back()/pop_back() 向最后插入一个元素/删除最后一个数 begin()/end() 迭代器 支持比较运算(按字典.原创 2021-07-17 20:43:01 · 163 阅读 · 0 评论