- 博客(17)
- 收藏
- 关注
原创 矩阵及矩阵快速幂
矩阵是一个二维数组, 行数通常用row或r表示, 列数用column或c表示, 矩阵由中括号或小括号括起来, 就像这样147258369147258369称左上到右下的一条对角线为。
2024-01-07 18:40:44
831
1
原创 模运算中的逆元
但是在介绍之前需要先铺垫一些知识点, 想要直接跳到结尾。吗, 显然不行, 因为c++中的除号是整除。回到本文开头, 我们要求出。在c++中, 我们可以把。逆元: 在模运算中,定义: 有两个正整数。, 如果有一个正整数。
2023-12-10 18:31:55
1281
1
原创 Codeforces Round 905 (Div. 3) 补题报告
可以使用自动排序的容器, 如priority_queue, multiset不去重排序, 移除时优先队列无法快速找到元素, multiset有find函数可以使用。思路总是僵住, 没有对题目有好的解题思路, 平日没有给同学讲题的机会, 要经常复习且多做题。例如[1,5,6,1,7,2], 如果要选后3个作为一个答案会发现前面还有一个。就像给出的例子, 一个数组要可以选择必须左端点的左边没有相同的数, 右端点同理。共8题, 前3题AC, 第4题TLE, 5-7题AC, 第8题没做。
2023-12-07 20:14:08
29
1
原创 拓扑排序简介
先来一道题:如果画出这张图, 会发现它是没有环的, 这也是拓扑排序适用的DAG(在这道题中, 每个人想要输出, 就要先输出他的父亲, 按照这个规律输出的序列叫做, 可以看出一张图的拓扑序列是不唯一的, 我们可以把入度为0的点视作起点。
2023-11-30 19:53:39
20
原创 图的存储结构
邻接表由333headNhead[N]headN: 这个点连接的第一条边,headi−1headi−1表示iii没有连边toEto[E]toE: 这条边到达的点neEne[E]neE: 即nextnextnext, 这条边起点连接的下一条边,nei−1ne[i] = -1nei−1表示, 这已经是边iii起点的最后一条连边wEw[E]wE: 这条边的权值, 只在有权值的图中。
2023-11-19 18:50:33
22
原创 Codeforces Round 900 (Div. 3) 补题报告
共7题, 前3题AC, 第4题TLE, 第5题WA, 6-7题没做。更改做题方式: 如果不会做翻翻笔记, 看看有没有可以用上的知识。是固定的, 可以使用二分查找最大的。, 本题不涉及修改操作, 还是一个。严格递增的正整数数组, 要求每个。, 写的不太详细, 大家多多评论。至于AC代码, 你肯定会输出前。开始遍历, 如果符合要求加入。次查询, 每次查询给一个整数。个组, 每组统计反转次数。是奇数, 把它与所对应的。出现次数最多, 答案是。个整数, 和是否能等于。次查询, 每次查询输入。本题解暂提供前5道题。
2023-11-13 21:55:30
33
原创 树状数组入门
树状数组可应用于单点修改, 区间求和单次修改和查询时间复杂度都为OlognO(\log n)Ologn, 空间复杂度为OnO(n)On。
2023-10-29 18:32:15
24
原创 ST表介绍
ST表是求解RMQ问题的一种算法, RMQ问题是 Range Maximum(Minimum) Query 的缩写, 意思是查询区间最大(最小)值。它使用的思想和的原理, 优点是速度更快, 做到Onlogn的预处理速度,O1的单次查询速度。ST算法是一个离线算法, 是指使用它的前提是。用于解决"可重复贡献问题", 是指每个元素会, 像求最大最小值计算多次也不会有影响, 可以使用ST算法, 但比如求和这类问题就不能使用了。
2023-10-06 12:06:31
86
1
原创 priority_queue, 重载运算符
重载运算符可以把想要的大部分运算改变下面是可重载的运算符双目算术运算符+ (加),-(减),*(乘),/(除),% (取模)关系运算符==(等于),!= (不等于),< (小于),> (大于),=(大于等于)逻辑运算符(逻辑或),&&(逻辑与),!(逻辑非)单目运算符+ (正),-(负),*(指针),&(取地址)自增自减运算符++(自增),–(自减)位运算符(按位或),& (按位与),~(按位取反),^(按位异或),,>(右移)赋值运算符。
2023-09-24 10:15:18
214
1
原创 常见STL讲解
栈是一个实现后进先出的容器栈头文件为<stack>用法:stack<变量类型> 栈名;队列是一个实现先进先出的容器头文件为<queue>用法:queue<变量类型> 栈名;vector为可动态数组, 可以随时添加数值和删除元素注意: 在局部区域中(比如局部函数里面)开vector数组, 是在堆空间里面开的在局部区域开数组是在栈空间开的, 而栈空间比较小,如果开了非常长的数组就会发生爆栈故局部区域不可以开大长度数组, 但是可以开大长度vector头文件为。
2023-09-10 15:26:51
63
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人