Zengtudor
|
efab9f4d2e
|
feat: 添加两个图的割点算法实现
实现基于Tarjan算法的割点检测功能,分别用于解决P3388和P8436问题
|
2025-10-02 20:51:57 +08:00 |
|
Zengtudor
|
9a06eb0821
|
feat: 实现Tarjan算法查找点双连通分量
添加Tarjan算法实现来查找图中的点双连通分量(v-BCC)。包括处理孤立节点和自环边的情况,并输出每个v-BCC的节点列表。使用手动栈优化性能,并添加详细注释说明算法逻辑。
|
2025-10-02 20:20:19 +08:00 |
|
Zengtudor
|
1f4768391d
|
feat: 添加P8435.cpp和P4554.cpp解题代码
P4554.cpp实现了一个基于双端队列的BFS算法,用于解决网格图中的最短路径问题
|
2025-10-02 19:49:52 +08:00 |
|
Zengtudor
|
e66f06db69
|
feat: 添加三个算法题目解决方案
添加了三个算法题目的解决方案文件:
1. wwfsqf.cpp - 实现树结构的DFS遍历和合并操作
2. P3393.cpp - 实现基于BFS和优先队列的最短路径算法
3. P3831.cpp - 实现基于Dijkstra算法的地铁站最短路径计算
|
2025-10-02 12:14:04 +08:00 |
|
Zengtudor
|
d94980c638
|
feat: 添加图遍历算法的初始实现
实现基础的图遍历算法框架,包括输入处理和DFS函数占位
|
2025-10-02 09:56:34 +08:00 |
|
Zengtudor
|
75c2df61c9
|
feat: 实现基于0-1 BFS的最大欧式距离计算
添加0-1 BFS算法来计算网格中可达点的最小代价,并在此基础上计算满足条件的两点间最大欧式距离。主要功能包括:
- 实现0-1 BFS算法计算各点到起点的最小代价
- 遍历所有点对,筛选满足代价条件的点对
- 计算并输出最大欧式距离
|
2025-10-01 21:02:08 +08:00 |
|
Zengtudor
|
cbde29b00b
|
refactor(P3956.cpp): 移除魔法颜色处理逻辑中的冗余代码
简化bfs函数中处理魔法颜色的代码块,删除未使用的变量和重复逻辑
|
2025-10-01 20:49:03 +08:00 |
|
Zengtudor
|
66ae25f60c
|
feat: 添加P3956.cpp实现网格最短路径算法
实现一个基于优先队列的BFS算法,用于计算在特定规则下的网格最短路径。主要功能包括:
- 处理网格中的颜色变化成本
- 支持魔法格子特殊处理
- 使用四维数组记录不同状态的最短路径
|
2025-10-01 20:38:44 +08:00 |
|
Zengtudor
|
294780abb5
|
feat: 添加P3146题目的动态规划解法实现
|
2025-10-01 12:01:45 +08:00 |
|
Zengtudor
|
da0cc7208d
|
feat: 添加P4170.cpp解决字符串最小染色问题
实现动态规划算法计算字符串的最小染色次数,用于解决P4170题目
|
2025-10-01 11:38:29 +08:00 |
|
Zengtudor
|
c216681b80
|
refactor: 将P1775.cpp移动到正确的目录结构
将P1775.cpp从src/10/移动到src/10/1/目录下,保持项目目录结构的一致性
|
2025-10-01 11:09:40 +08:00 |
|
Zengtudor
|
bdc44c988d
|
docs(P1063): 修正dp数组定义中的区间描述错误
将dp[i][j]的定义从"[1,j]"修正为"[i,j]",以准确反映动态规划区间合并的范围
|
2025-10-01 10:18:03 +08:00 |
|
Zengtudor
|
1573b1301b
|
feat: 添加P1775动态规划解法实现
实现Luogu P1775问题的动态规划解法,使用区间DP计算最小合并成本
|
2025-10-01 09:43:05 +08:00 |
|
Zengtudor
|
eb451f8c09
|
feat: 添加P6279题解实现并查集功能
实现基于并查集的解决方案来处理图的连通性问题,包括合并操作和查找操作。代码包含输入处理和结果输出逻辑,但存在传递性问题需要后续修复。
|
2025-09-30 21:10:54 +08:00 |
|
Zengtudor
|
c0d1a2f156
|
feat: 添加P9980题解实现
实现P9980题目的解法,包括输入处理和矩阵运算逻辑。使用动态规划思想计算相邻节点关系,最终输出结果。
|
2025-09-30 19:32:24 +08:00 |
|
Zengtudor
|
9eba3f859a
|
fix: 移除多余的std::cout语句
修复了在特定条件下出现的多余std::cout语句,该语句没有实际输出内容且可能导致不必要的性能开销
|
2025-09-30 16:56:21 +08:00 |
|
Zengtudor
|
250e0ca930
|
refactor: 移动并重写P8866.cpp文件
将P8866.cpp从src/8/12目录移动到src/9/29目录
重写文件内容,添加完整逻辑处理输入输出
|
2025-09-30 16:33:14 +08:00 |
|
|
|
0cea6a732c
|
feat: 添加P5658题解实现括号匹配与树遍历算法
实现基于深度优先搜索的括号匹配算法,计算树结构中每个节点的权值并求异或和。主要功能包括:
- 处理输入树结构和括号序列
- 使用栈进行括号匹配
- 动态规划计算节点权值
- 最终结果异或运算
|
2025-09-27 19:14:00 +08:00 |
|
|
|
25605159cc
|
feat: 添加日期验证逻辑解决P5690问题
实现日期格式验证功能,根据输入的月份和日期判断其有效性,并输出相应的验证结果。主要处理了月份和日期的各种边界情况,包括非法月份、非法日期以及特殊月份的天数验证。
|
2025-09-27 16:44:47 +08:00 |
|
|
|
eded996d6b
|
refactor: 移动并重构P11232.cpp文件
将P11232.cpp从src/8/12目录移动到src/9/27目录
重构文件内容,添加新的功能实现
|
2025-09-27 16:04:49 +08:00 |
|
|
|
e8b9924069
|
feat: 添加P11228.cpp解题代码实现网格遍历算法
实现一个网格遍历算法,根据输入参数在网格中移动并统计访问过的格子数量。包含以下功能:
- 读取网格大小和初始位置
- 处理移动方向变化
- 统计并输出访问过的不同格子数量
|
2025-09-26 22:33:55 +08:00 |
|
|
|
6e9562d5cb
|
feat: 添加两个新的算法题目解决方案文件
添加 valid-triangle-number.cpp 和 P11231.cpp 两个文件,分别包含三角形数验证问题和P11231问题的解决方案
|
2025-09-26 16:41:14 +08:00 |
|
|
|
e8ed12ddcd
|
docs(P7914): 移除冗余的long long类型注释
|
2025-09-26 12:32:50 +08:00 |
|
|
|
929a5ed188
|
feat: 添加超级括号序列问题的动态规划解法
实现基于区间DP的解决方案,处理四种不同状态转移:
1. 任意合法序列的计数
2. 前缀星号序列的计数
3. 被括号包裹序列的计数
4. 后缀星号序列的计数
包含预处理步骤快速判断子串是否可全为星号,使用模运算防止溢出。
|
2025-09-25 20:26:46 +08:00 |
|
|
|
66f957900f
|
refactor(P8817): 重构题目解法并优化性能
将原递归实现改为BFS算法计算节点间距离
使用预处理和剪枝优化计算效率
添加完整解题逻辑计算最大得分
|
2025-09-25 15:43:14 +08:00 |
|
|
|
d3c7ed51a5
|
feat: 添加P8816问题的动态规划解决方案
实现了一个动态规划算法来解决P8816问题,计算在给定约束条件下的最大长度。算法通过排序点和状态转移来优化计算效率。
|
2025-09-25 13:23:10 +08:00 |
|
|
|
37ca18855a
|
perf(P8818): 使用预计算的lg2数组优化对数计算
用预计算的lg2数组替代多次log2调用,减少重复计算开销
|
2025-09-24 17:36:30 +08:00 |
|
|
|
cebbfa9891
|
refactor(P8818.cpp): 移除未使用的头文件和变量以简化代码
删除未使用的<functional>和<stdexcept>头文件
移除未使用的bupmin和bdownmax变量
|
2025-09-24 16:31:55 +08:00 |
|
|
|
b8cf43f694
|
feat: 实现P8818题的解决方案
添加基于稀疏表的区间查询功能,用于处理不同情况下的最大值、最小值和零值判断
实现题目要求的各种情况组合计算逻辑
|
2025-09-24 16:09:44 +08:00 |
|
|
|
e75613ac10
|
feat: 添加P8818题目解题框架
添加题目P8818的解题思路框架和基本代码结构,包含不同情况下A和B数组取值的分析注释
|
2025-09-23 18:01:59 +08:00 |
|
|
|
07aecbac0e
|
refactor: 移除调试打印代码并清理多余空行
|
2025-09-23 15:59:15 +08:00 |
|
|
|
f8b4831d7b
|
feat: 添加版本号比较功能并优化日期计算逻辑
实现版本号比较功能,新增 compare-version-numbers.cpp 文件。同时重构 P7075.cpp 中的日期计算逻辑,优化闰年判断和日期转换算法,提高代码可读性和准确性。
|
2025-09-23 15:51:07 +08:00 |
|
|
|
e4225e6f1a
|
feat: 添加P7075.cpp基础框架代码
实现日期转换问题的基本框架,包含输入处理和空函数结构
|
2025-09-22 16:01:40 +08:00 |
|
|
|
27bebc97c0
|
feat: 添加日期计算功能实现
实现日期相关计算功能,包括闰年判断和日期差计算
|
2025-09-22 15:26:37 +08:00 |
|
|
|
daad891ca8
|
feat: 添加 P10187 的 C++ 和 Python 解决方案
添加了 P10187 问题的 C++ 和 Python 实现代码。Python 代码实现了从标准输入读取数据并处理输出,C++ 代码目前为空框架
|
2025-09-22 13:32:58 +08:00 |
|
|
|
dc8c323910
|
feat(P8901): 优化农夫游戏逻辑并改进性能
- 移除不必要的数组a,改用变量存储最小值
- 添加对偶数的特殊处理,直接计算t[i]值
- 修改游戏结果判断逻辑,基于模4运算决定获胜者
- 清理调试代码和注释
|
2025-09-21 17:01:24 +08:00 |
|
|
|
82d3e19015
|
refactor(test.cpp): 移除蒙特卡洛模拟代码,保留空主函数
清理不再使用的代码,简化测试文件结构
|
2025-09-21 16:42:27 +08:00 |
|
|
|
367e1927a5
|
feat: 添加两个新的算法实现文件
添加了vowel-spellchecker.cpp和P8901.cpp两个算法实现文件。P8901.cpp实现了基于筛法的素数处理功能,包含输入处理和主逻辑
|
2025-09-21 16:41:00 +08:00 |
|
|
|
0d64ce82d3
|
feat: 添加P7074题解,实现动态规划解法
|
2025-09-13 20:15:30 +08:00 |
|
|
|
fb1f59a3f1
|
feat: 添加P3609题解,实现动态规划与记忆化搜索
添加了P3609题的解决方案,使用动态规划和记忆化搜索来计算在最多k次手势变化情况下的最大胜利次数。包含输入处理和结果输出逻辑。
|
2025-09-12 17:55:05 +08:00 |
|
|
|
8aba3d8e3d
|
feat: 添加P5017问题的动态规划解法
实现了一个基于深度优先搜索和记忆化的动态规划解决方案,用于解决P5017问题。该算法通过排序输入数据并利用记忆化技术优化计算,有效减少了重复计算,提高了效率。
|
2025-09-11 11:46:00 +08:00 |
|
|
|
777488a777
|
refactor: 移除P9981.cpp中的冗余代码
清理未使用的代码,仅保留main函数框架以简化文件
|
2025-09-10 23:00:25 +08:00 |
|
|
|
8c8fc92b3b
|
perf(P9981): 优化图算法性能并实现快速IO
重构图遍历算法,使用更高效的数据结构和比较逻辑
添加FastIO模块提升输入输出性能
|
2025-09-10 21:23:33 +08:00 |
|
|
|
88b393ac28
|
feat: 添加P9981.cpp实现拓扑排序和最长路径计算
实现了一个解决特定图论问题的程序,主要功能包括:
- 读取输入并构建图结构
- 执行拓扑排序
- 计算每个节点的最长路径及其边权和
- 输出每个节点的路径长度和边权总和
|
2025-09-10 20:51:46 +08:00 |
|
|
|
b8c88b06cd
|
refactor(test.cpp): 简化代码并实现蒙特卡洛模拟
移除地图生成相关代码,改为实现木棍折断问题的蒙特卡洛模拟
使用 C++11 随机数生成工具提高随机数质量
添加 IO 加速设置优化性能
|
2025-09-08 21:31:51 +08:00 |
|
|
|
b7d76322ab
|
feat: 实现P8865题目的C和F格式计算功能
添加完整的解题代码,包括输入处理、动态规划计算和结果输出。主要功能包括:
- 读取输入数据并初始化地图
- 计算每个位置的右侧和下侧可达范围
- 根据题目要求计算C和F格式的结果
- 输出最终计算结果
|
2025-09-07 17:04:20 +08:00 |
|
|
|
a59dc23b13
|
feat: 实现随机地图生成器,包含房间创建和连接功能
添加地图生成器类,支持随机房间放置、走廊连接和房屋空间识别
使用洪水填充算法区分内外空间,确保生成合理的地图布局
|
2025-09-07 11:53:52 +08:00 |
|
|
|
a1024cfc8e
|
feat: 添加P1004.cpp解决动态规划路径问题
实现动态规划算法解决网格路径最大值问题,包含两次遍历计算最优路径和分数累加
|
2025-09-06 19:17:24 +08:00 |
|
|
|
f8f53e255d
|
feat: 添加P1616和P5020题解代码
实现动态规划解法,分别解决背包问题和货币系统问题
|
2025-09-06 17:09:45 +08:00 |
|
|
|
5746fd6999
|
feat: 添加基于稀疏表的区间最值查询功能
实现一个使用稀疏表数据结构的算法,用于高效查询区间最大值和最小值
包含预处理阶段构建稀疏表和查询阶段处理多个区间查询
|
2025-09-06 14:02:24 +08:00 |
|
|
|
b6e0880148
|
feat: 添加P7992和libre10115两个算法问题的解决方案
添加了两个新的算法实现文件:
1. P7992.cpp - 实现了一个基于前缀和的统计问题解决方案
2. libre10115.cpp - 实现了一个使用二叉索引树(Fenwick Tree)的区间查询问题解决方案
|
2025-09-04 15:02:33 +08:00 |
|
|
|
cc3380434c
|
feat: 添加P3660题解实现,使用树状数组计算交叉对数
实现了一个使用树状数组的解法来计算数组中成对元素的交叉对数。通过维护一个访问标记数组和树状数组来高效统计区间和,优化了计算过程。
|
2025-09-03 17:27:32 +08:00 |
|
|
|
8aca422b9d
|
feat: 添加P9127题解实现子数组排序与查询功能
|
2025-09-03 14:34:30 +08:00 |
|
|
|
17a58ec2aa
|
docs: 更新README并清理测试代码
更新README添加超时优化方法,同时清理test.cpp中未使用的代码
|
2025-09-02 15:41:38 +08:00 |
|
|
|
64a6dc8651
|
refactor: 移除未使用的cstdio头文件
|
2025-09-02 12:24:23 +08:00 |
|
|
|
8f654d7c2d
|
feat(P1967): 添加LCA查询功能并优化图结构处理
实现基于倍增法的LCA查询功能,用于计算图中两点间最小边权
- 添加dpth、fth和cost数组用于存储深度、父节点和路径最小权值
- 新增dfs函数初始化上述数组
- 实现lca函数查询两点间最小边权
- 修改主函数处理查询请求并优化并查集初始化
- 移除调试代码并添加必要头文件
|
2025-09-02 12:24:08 +08:00 |
|
|
|
727facbee0
|
feat: 添加P1967.cpp实现最小生成树算法
实现基于优先队列和并查集的最小生成树算法,用于解决图论中的连通问题。包含边的结构定义、合并操作和结果输出功能。
|
2025-09-02 11:04:17 +08:00 |
|
|
|
e018452176
|
fix(P6278.cpp): 修正二进制索引树实现中的错误
修复lb函数中错误的变量使用,将'n'改为'val'
修正upd函数中错误的加法操作,将'n'改为'add'
优化逆序对计算逻辑,调整索引计算方式
|
2025-09-01 20:28:21 +08:00 |
|
|
|
9db115d255
|
refactor(9): 重构P3608.cpp并添加P6278.cpp
将P3608.cpp移动到9/1目录并扩展功能
新增P6278.cpp实现树状数组相关算法
修改test.cpp添加输入处理和异常检查
|
2025-09-01 15:26:27 +08:00 |
|
|
|
6acad9f13b
|
feat: 添加P3608.cpp实现逆序对统计与不平衡检测
实现基于树状数组的逆序对统计功能,用于检测序列中的不平衡元素。
通过排序和离散化处理输入数据,计算每个元素左右两侧的逆序对数量,
并判断是否满足不平衡条件(max(l,r) > min(l,r)*2)。
|
2025-09-01 12:16:57 +08:00 |
|
|
|
c5c309b935
|
feat: 添加P5200题解实现,使用树状数组计算逆序对
实现了一个使用树状数组计算逆序对数量的算法,用于解决P5200题目。通过维护树状数组来高效计算区间和,从而确定每个元素的逆序对数量。
|
2025-08-31 16:17:34 +08:00 |
|
|
|
8b1f7317ff
|
feat: 实现炮兵阵地问题的动态规划解法
添加动态规划解决方案来计算炮兵阵地的最大部署数量。使用状态压缩和预处理来优化性能,处理输入地图并计算合法状态及其对应的炮兵数量。
|
2025-08-31 14:23:00 +08:00 |
|
|
|
84436ffbbe
|
feat: 添加P2704.cpp基础框架
|
2025-08-31 11:13:06 +08:00 |
|
|
|
000e34da46
|
refactor(test.cpp): 替换cstdio为iostream并简化测试逻辑
将测试文件中的cstdio替换为iostream,并移除不必要的指针操作。
简化测试逻辑,直接测试位移操作并输出结果。
|
2025-08-31 11:12:40 +08:00 |
|
|
|
522e869e7b
|
refactor(P1896.cpp): 移除未使用的头文件以简化代码
移除<cstdio>和<string>头文件,这些在当前实现中未被使用,减少不必要的依赖
|
2025-08-30 17:01:49 +08:00 |
|
|
|
88a1760e0d
|
fix(P1896): 修复循环条件错误和逻辑错误
修复循环条件中缺少自增运算符的问题
修正变量名错误导致的逻辑问题
移除调试用的注释代码
|
2025-08-30 16:59:18 +08:00 |
|
|
|
505d9e9c4d
|
feat: 添加P1896.cpp解决棋盘放置问题
实现动态规划算法解决棋盘上放置不互相攻击的国王问题。使用三维数组存储状态,通过位运算检查合法位置,并计算所有可能的放置方案总数。
|
2025-08-30 16:42:52 +08:00 |
|
|
|
b4e809156f
|
refactor(P2016.cpp): 移除未使用的头文件和常量
删除未使用的<cstdio>头文件和未使用的常量inf,简化代码结构
|
2025-08-30 13:46:27 +08:00 |
|
|
|
8894e59851
|
feat: 添加P2016.cpp实现最小顶点覆盖算法
实现了一个动态规划算法来解决树结构的最小顶点覆盖问题。使用深度优先搜索遍历树结构,并通过动态规划计算每个节点的两种状态值,最终输出根节点的最优解。
|
2025-08-30 13:43:05 +08:00 |
|
|
|
a026979a58
|
refactor: 移除未使用的utility头文件
|
2025-08-30 12:15:54 +08:00 |
|
|
|
db685782e1
|
feat: 添加动态规划解决能量项链问题
实现动态规划算法计算将能量项链合并为一堆时的最大总能量。使用二维数组存储中间结果,通过三重循环计算所有可能的合并方式,最终输出最大能量值。
|
2025-08-30 12:13:29 +08:00 |
|
|
|
5e23f17133
|
feat: 添加P2014题目解决方案实现动态规划算法
实现基于树形动态规划的课程选修问题解决方案,计算在限定课程数量下能获得的最大学分。使用深度优先搜索遍历课程依赖关系,并通过动态规划状态转移求解最优解。
|
2025-08-29 15:59:18 +08:00 |
|
|
|
52b2321a96
|
feat: 实现动态规划解决奶牛逃跑问题
添加P4267.cpp文件,实现动态规划算法计算奶牛逃跑序列的最小修改次数。算法使用二维DP数组存储状态,并通过预处理计算区间修改成本。解决给定n头奶牛在不同逃跑次数下的最小不一致数量问题。
|
2025-08-29 14:17:10 +08:00 |
|
|
|
91aa4d02bc
|
feat: 实现石子合并问题的动态规划解法
添加完整的动态规划实现来计算石子合并问题的最小和最大得分
优化输入输出性能并修复原未实现的代码
|
2025-08-29 12:04:25 +08:00 |
|
|
|
22e2db73d9
|
refactor(P4342.cpp): 优化动态规划实现并修复计算逻辑
重构动态规划的实现方式,将原来的双重循环改为基于长度的遍历,提高代码可读性和效率。同时修复了最大值和最小值的计算逻辑,确保正确处理加法和乘法操作。添加结果收集和输出部分,完善程序功能。
|
2025-08-29 10:14:01 +08:00 |
|
|
|
84eee83148
|
feat(P4342): 实现动态规划算法解决环形表达式问题
添加动态规划表初始化及输入处理逻辑
包括同步IO优化和环形操作符数组处理
|
2025-08-28 21:23:39 +08:00 |
|
|
|
2573240c73
|
docs: 更新README并添加动态规划算法模板
添加算法笔记标题到README.md
新增两个动态规划算法模板文件:
- opj8782.cpp:处理数字串添加乘号的最大值问题
- P4342.cpp:处理区间合并的最大最小值问题
|
2025-08-28 16:11:01 +08:00 |
|
|
|
37f3373029
|
feat: 添加P4267.cpp空模板文件并更新README文档
refactor: 重命名变量以提高代码可读性
将max_len改为maxlen,predecessor_k改为pk,max_lcsis改为maxlen,end_j改为endj,result_stack改为res,curr_i改为curri,curr_j改为currj
chore: 移动sort-matrix-by-diagonals.cpp文件位置
从src/8/27/移动到src/8/28/并更新内容
|
2025-08-28 15:16:31 +08:00 |
|
|
|
830b825fbf
|
feat: 添加矩阵对角线排序和V形对角线最长段算法
refactor: 优化最长公共递增子序列算法实现
|
2025-08-28 14:14:16 +08:00 |
|
|
|
8b49a88aa9
|
update
|
2025-08-27 20:29:44 +08:00 |
|
|
|
f8994b5c7c
|
update
|
2025-08-27 16:51:18 +08:00 |
|
|
|
c200843ae3
|
update
|
2025-08-26 17:38:15 +08:00 |
|
|
|
704ffb6b91
|
update
|
2025-08-26 16:34:36 +08:00 |
|
|
|
8f3a0f8984
|
update
|
2025-08-26 16:11:12 +08:00 |
|
|
|
f39b892175
|
update
|
2025-08-26 15:51:38 +08:00 |
|
|
|
4f984539f1
|
update
|
2025-08-26 15:11:31 +08:00 |
|
|
|
ac99a0f6fb
|
update
|
2025-08-26 13:48:30 +08:00 |
|
|
|
27ecded092
|
update
|
2025-08-26 12:49:41 +08:00 |
|
|
|
2e204e29b6
|
update
|
2025-08-25 21:00:08 +08:00 |
|
|
|
797976b853
|
update
|
2025-08-25 17:25:22 +08:00 |
|
|
|
a8ea175f77
|
update
|
2025-08-25 14:34:28 +08:00 |
|
|
|
d9a9164d21
|
update
|
2025-08-25 11:27:39 +08:00 |
|
|
|
d704fe09d4
|
update
|
2025-08-25 11:25:01 +08:00 |
|
|
|
783bc1aac5
|
update
|
2025-08-24 15:39:48 +08:00 |
|
|
|
d9493a024b
|
update
|
2025-08-23 19:55:38 +08:00 |
|
|
|
76df104990
|
update
|
2025-08-23 17:40:07 +08:00 |
|
|
|
d8dd0c81b1
|
update
|
2025-08-23 13:57:11 +08:00 |
|
|
|
75cc4f03e5
|
update
|
2025-08-23 11:18:42 +08:00 |
|
|
|
42fd440053
|
update
|
2025-08-23 10:49:44 +08:00 |
|
|
|
8b7ef64107
|
update
|
2025-08-22 21:03:00 +08:00 |
|