- 博客(59)
- 收藏
- 关注
原创 AtCoder Beginner Contest 399题目翻译
本文摘要了AtCoder Beginner Contest 399的前四道题目: A题计算两个字符串的汉明距离,即对应位置不同字符的个数; B题为选手按分数排名,同分者并列,要求输出每个选手的最终名次; C题将无向图转化为森林(无环图)所需删除的最小边数; D题统计满足特定交换条件的整数对数,要求初始不相邻但可通过交换使各自相邻。题目涉及字符串处理、排序算法、图论和组合数学等知识点。
2025-06-01 21:30:04
1154
原创 UNIQUE VISION Programming Contest 2025 Spring (AtCoder Beginner Contest 398) 题目讲解
以下是 AtCoder Beginner Contest 398 前四题的题目、样例翻译及 C++ 解题步骤整理。因原题可能涉及日语或英文,以下内容基于常规题意分析,具体以实际题目为准。感谢支持Thanks♪(・ω・)ノ
2025-06-01 15:05:06
979
原创 UNIQUE VISION Programming Contest 2025 Spring (AtCoder Beginner Contest 398) 题目翻译
本文摘要介绍了AtCoder Beginner Contest 398的前四道题目及解法: A题要求构造特定回文串(含1-2个相邻"="),给出根据N生成对应字符串的方法。B题判断7张牌中能否选出"葫芦"组合(3张同数字+2张同数字)。C题在N个整数中找出唯一出现且值最大的元素。D题模拟烟雾在网格中的扩散过程,根据风向序列判断目标位置(R,C)在各时刻是否有烟雾。四题均需处理特定条件下的逻辑判断或模拟过程,涉及回文构造、组合统计、唯一性检测和坐标追踪等算法。
2025-05-31 22:42:08
917
原创 c++树状数组模板Fenwick (Binary Indexed) Trees
树状数组(Fenwick Tree)是一种高效处理前缀和查询与单点更新的数据结构,时间复杂度为O(log n)。其核心思想是利用二进制分组(lowbit操作)快速定位区间,相比线段树实现更简单(仅需8-10行代码),空间占用更少。支持两种核心操作:单点更新(通过父节点链式修改)和前缀和查询(通过子节点递减累加)。典型应用包括动态前缀和、逆序数统计和元素排名维护。虽然不支持直接区间查询,但通过差分思想可扩展,在竞赛编程中因其简洁高效而广受欢迎。
2025-05-25 19:04:27
874
原创 c++线段树之单点修改区间最大子段和-----P4513 小白逛公园
本文介绍了如何使用线段树解决单点修改和查询区间最大子段和的问题。线段树的每个节点存储了四个值:区间总和、最大前缀和、最大后缀和以及最大子段和。通过合并左右子节点的信息,可以维护当前节点的这些值。具体实现包括构建线段树、更新节点值以及查询区间最大子段和。代码展示了如何通过递归和合并操作来实现这些功能,最终能够高效地处理单点修改和区间查询。
2025-05-18 14:12:31
221
原创 洛谷P3373线段树详解【模板】
洛谷P3373是一道关于线段树的模板题,题目名称为“【模板】线段树 2”。题目的主要要求是对一个长度为n将某区间每个数乘上一个数。将某区间每个数加上一个数。求出某区间所有数的和。线段树是一种二叉树数据结构,常用于高效处理区间查询和更新操作。它可以将一个区间划分为多个子区间,每个节点代表一个区间,通过维护这些节点的信息,可以在OlognO(\log n)Ologn的时间复杂度内完成区间查询和更新操作。400002221和分别引入输入输出流和数学库。
2025-04-19 22:17:07
883
原创 哈夫曼编码和哈夫曼树
哈夫曼编码通过构建最优二叉树实现高效压缩,是经典的数据压缩算法之一。理解其核心思想(贪心算法)和实现步骤(构建树、生成编码),是掌握数据压缩技术的基础。
2025-04-19 19:48:39
888
原创 c++中的类有关概念
在 C++ 中,**类(Class)** 是面向对象编程(OOP)的核心概念,用于封装数据和行为。以下是关于类的主要概念和用法:
2025-04-19 19:40:37
1047
原创 c++线段树模板理顺覆盖和加法之间逻辑
线段树在处理区间覆盖(set)和区间加法(add)时,需要明确两者的优先级及标记传递逻辑。此模板正确处理了覆盖与加法操作的优先级及合并,适用于多种区间修改与查询场景。
2025-04-13 14:23:17
776
原创 加减乘除、位移运算、按位异或等运算及其反向运算的详细总结
以下是加减乘除、位移运算、按位异或等运算及其反向运算的详细总结,帮助理解它们的数学关系和逆向操作逻辑:可逆性:特殊规则:应用场景:
2025-04-13 13:26:27
1019
原创 C++线段树详解与实现技巧
400002// 4倍原始数据大小// 线段树节点值(区间和)// 懒惰标记(区间增量)为何需要4倍空间?线段树层数为,4倍空间确保完全二叉树的构建。线段树核心:通过完全二叉树分割区间,利用懒惰标记优化更新。关键技巧正确计算左右子节点的区间长度。在访问子节点前下传懒惰标记。数据扩展至2的幂次,简化索引计算。通过理解上述实现细节,可以高效解决各类动态区间统计问题!
2025-04-12 18:37:57
71
原创 二叉树三种遍历
三种遍历是操作二叉树的基础,理解其顺序与实现方式对解决树相关问题(如构造、序列化、查找路径)至关重要。二叉树是数据结构中的基础树形结构,其遍历方式分为。前序遍历和中序遍历相同的二叉树为且仅为( )。C. 非叶子结点只有左子树的二叉树。D. 非叶子结点只有右子树的二叉树。B. 根结点没有左子树的二叉树。A. 只有 1 个点的二叉树。
2025-04-12 18:15:48
81
原创 c++图论(六)之字典序最小欧拉路
对于无向图,检查所有顶点的度数。若存在0个奇数度数的顶点,则为欧拉回路;若存在2个奇数度数的顶点,则为欧拉路径,否则不存在。
2025-03-23 15:54:15
318
原创 c++图论(五)之判断图连通
这段 C++ 代码的主要功能是判断给定的图是否存在欧拉路径或欧拉回路。欧拉路径是指在图中经过每条边恰好一次的路径,而欧拉回路是指起点和终点相同的欧拉路径。下面是对代码各部分的详细解释:
2025-03-23 15:45:20
318
原创 c++二分查找模板
在C++中,**二分查找(Binary Search)** 是一种针对**有序数组/容器**的高效搜索算法,时间复杂度为 **O(log n)**。其核心思想是通过不断缩小搜索范围,将目标值与中间元素比较,从而快速定位元素位置。以下是详细实现和注意事项:
2025-03-23 15:33:40
181
原创 c++类的定义
在 C++ 中,类(Class) 是面向对象编程(OOP)的核心概念,用于描述具有共同属性和行为的对象的抽象模板。你可以将类理解为一个“蓝图”,它定义了对象的结构和行为规则,而对象(Object)则是根据这个蓝图创建的具体实例。
2025-03-23 14:43:24
153
原创 AtCoderBeginnerContest397(A - Thermometer、B - Ticket Gate、C - Variety Split Easy、D - Cubes)题目讲解
又更新的题目讲解啦!!希望能给诸位带来帮助。
2025-03-22 19:52:27
423
原创 c++图论(四)之有向无环图特的拓扑排序
在 C++ 中实现有向无环图(DAG,Directed Acyclic Graph)的拓扑排序,可以通过两种经典方法:**BFS遍历法**和 **DFS 后序遍历**。以下是两种方法的实现原理、代码示例及详细说明:
2025-03-16 14:28:49
419
原创 c++图论(三)之图的遍历
在 C++ 中实现图的遍历主要有两种经典算法:**深度优先搜索(DFS)** 和 **广度优先搜索(BFS)**。以下是两种遍历方法的实现原理、代码示例及对比分析:
2025-03-16 14:09:20
568
原创 c++图论(一)之图论的起源和图的概念
图论(Graph Theory)是数学和计算机科学中的一个重要分支,其起源可以追溯到 18 世纪 的经典问题。以下是图论的历史背景、核心起源问题及其与基本概念和用途:
2025-03-16 13:04:51
918
1
原创 c++排序算法大全
在 C++ 中,排序算法可以通过标准库函数(如 std::sort)实现,也可以手动实现经典算法。以下是常见排序方法及其示例:
2025-03-16 10:34:20
149
原创 c++中std::是什么意思?
是 C++ 中用于访问的作用域解析操作符。它表示后续的标识符(如函数、类、对象等)属于 C++ 标准库(Standard Library)的命名空间std。C++ 标准库的所有内容(如coutvectorstringsort等)都被封装在std命名空间中。这是为了避免命名冲突。coutcoutstd::cout通过声明命名空间,省略:这种方式虽然方便,但在大型项目中可能导致命名冲突,因此建议仅在小型程序或作用域内使用。
2025-03-16 10:26:48
733
原创 AtCoderBeginnerContest397(A - Thermometer、B - Ticket Gate、C - Variety Split Easy、D - Cubes)题目翻译
又更新的题目翻译啦!!希望能给诸位带来帮助。
2025-03-15 22:17:01
1126
原创 AtCoder Beginner Contest 003(A - 社の給料、B -トランプ、C -プログラミング講座、D - 社の冬 )题目讲解
又更新的题目讲解啦!!希望能给诸位带来帮助。
2025-03-15 21:52:57
1107
原创 AtCoder Beginner Contest 004(A - 流行、B - 回転、C - 入れ替え、D - マーブル)题目翻译
又更新的题目翻译啦!!希望能给诸位带来帮助。
2025-03-15 19:22:17
1203
原创 AtCoder Beginner Contest 003(A - 社の給料、B -トランプ、C -プログラミング講座、D - 社の冬 )题目翻译
又更新AtCoder Beginner Contest的题目翻译啦!!希望能给诸位带来帮助。
2025-03-09 16:43:02
771
原创 c++反向 ST 表模板
*ST 表(Sparse Table,稀疏表)**是一种用于高效处理区间最值查询(RMQ,Range Minimum/Maximum Query)问题的数据结构。常规的 ST 表通常是预先处理出所有以某个位置为起点,长度为2k2^k2k的区间的最值,查询时通过拼接两个重叠的2k2^k2k长度的区间来得到任意区间的最值。而反向 ST 表与常规 ST 表不同,它存储的是以某个位置为终点,长度为2k2^k2k的区间的最值。在这个代码中,st[i][j]表示区间ii−2j1i。
2025-03-09 12:29:51
649
原创 种子填充(Floodfill、泛滥填充、洪水填充) 算法c++模板
种子填充(Floodfill) 算法: 从任意 W 开始,不停地把邻接的 W 用 . 代替。1 次 DFS 后与初始 W 连接的所有 W 都被替换成 . 了。因此,直到图中不存在 W 为止,总共进行 DFS 的次数就是答案了。
2025-03-09 12:11:59
76
原创 AtCoder Beginner Contest 002(A - 正直者、B - 罠、C - 直訴)题目讲解
又更新AtCoder Beginner Contes 的题目讲解啦!!希望能给诸位带来帮助。SO,这次就不发第四题了。
2025-03-09 08:41:44
233
1
原创 AtCoder Beginner Contest 002(A - 正直者、B - 罠、C - 直訴)题目翻译
又更新AtCoder Beginner Contes 的题目翻译啦!!希望能给诸位带来帮助。我在做这道题的时候,前三题都很简单,做到第四题就做不动了,那难度蹭的就↑上去了。我跳到洛谷上一看,好家伙,绿题!!!!SO,这次就不发第四题了。→题目讲解。
2025-03-08 22:38:10
912
原创 完全图的生成树
完全图 ( K_n ) 的生成树数目为 ( n^{n-2} )(由凯莱公式得出)。例如,( K_3 ) 有 ( 3^{1}=3 ) 种生成树(每个顶点作为根的树)。完全图是一个简单图,其中。
2025-03-08 19:33:57
250
原创 C++稀疏表(Sparse Table,ST表)区间最小值/最大值查询 模板
稀疏表(Sparse Table,ST 表)作为一种经典的数据结构,凭借其O (n log n) 的预处理时间复杂度和O (1) 的单次查询时间复杂度,成为解决这类问题的理想选择。
2025-03-08 18:29:52
336
原创 c++倍增概念
倍增是一种非常实用的算法思想,在很多数据结构和算法中都有广泛应用,比如稀疏表(Sparse Table,ST 表)、最近公共祖先(LCA)问题等。下面从基本概念、核心思想、应用场景等方面详细介绍倍增概念。
2025-03-08 18:23:43
202
原创 AtCoder Beginner Contest 001(A - 積雪深差、B - 視程の通報、C - 風力観測、D - 感雨時刻の整理)题解
由于我发现网上很少有人会发很久之前AtCoder Beginner Contes的题,所以我打算从AtCoder Beginner Contest 001开始写。
2025-03-02 22:15:47
607
7
原创 AtCoder Beginner Contest 001(A - 積雪深差、B - 視程の通報、C - 風力観測、D - 感雨時刻の整理)题目翻译
由于我发现网上很少有人会发很久之前AtCoder Beginner Contes的题,所以我打算从AtCoder Beginner Contest 001开始写。
2025-03-02 21:44:05
619
原创 C++二分图
二分图(Bipartite Graph)是一种特殊的图结构,其顶点可以分成两个互不相交的集合,使得每条边的两个顶点分别属于这两个集合。二分图在匹配问题(如任务分配、婚姻匹配)和网络流算法中有重要应用。通过颜色标记法,可以高效判断图是否为二分图,并进一步用于解决更复杂的匹配和分配问题。
2025-03-02 15:43:31
200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人