- 博客(6)
- 收藏
- 关注
原创 HDU 7136(2021ccpc重赛)Jumping Monkey 题解
题目链接Jumping MonkeyProblem DescriptionThere is a tree with n nodes and n−1 edges that make all nodes connected. Each node i has a distinct weight ai. A monkey is jumping on the tree. In one jump, the monkey can jump from node u to node v if and only if a
2021-10-12 16:18:52
255
原创 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
294
原创 离散化(模板)
离散化本质上可以看作一种哈希,离散化操作之后,可以保证一组数据在经过处理之后,其相对位置并没有发生变化。即:当给出的数据自身,因为过大或者类型无法匹配无法作为数组下标,且影响最终结果的只有数据间的相对大小关系时,我们可以将原来的数据按照从大到小编号来处理问题,即离散化。用来离散化的可以是大整数、浮点数、字符串等等。例题:Acwing802.区间和假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。接下来,进行 m 次询问,每
2021-07-28 20:21:31
168
原创 字符串哈希(模板)
字符串哈希就是将一个字符串通过一定方式转化成一个数据,便于与其他字符串进行比较是否相同。要将一个字符串s转化成一个数字,我们可以通过进制转化方式进行,即将一个字符串转化位P进制数(这里的P一般取131或13331)如:char s[] = {'a','b','c','d'};//则该字符串即为 abcd 左边为高位,右边为低位,转为P进制数 ans(ans初始值为0)即可表示为for(int i = 0 ;i < strlen(s);i++) ans = ans * P + s[i];同
2021-07-18 00:42:07
540
原创 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
188
原创 图的最短路和最小生成树
最短路径Dijkstra 算法令S={源点s + 已经确定了最短路径的顶点Vi}对任一未收录的顶点V,定义dist[V]为s到V的最短路径长度,但该路径仅经过S中的顶点。若路径是按照递增(非递减)的顺序生成的,则1.真正的最短路径必须只经过S中的顶点。2.每次从未收录的顶点中选一个dist最小的收录。3.增加一个V进入S,可能影响另外一个w的dist值!伪代码如下:void Dijkstra(Vertex s){ while(1){ V = 未收录顶点中dist最
2021-02-28 20:27:51
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人