- 博客(52)
- 收藏
- 关注
原创 洛谷P3865 【模板】ST 表 & RMQ 问题 【考点】:ST表,倍增思想
本文介绍了ST表解决RMQ(区间最大值查询)问题的模板实现。ST表通过倍增预处理构建稀疏表f[i][j],存储从i开始长度为2^j区间的最大值。预处理阶段采用动态规划递推,查询时利用两个覆盖区间块取最大值实现O(1)查询。代码实现分为三步:1)初始化读入数组;2)倍增构建ST表;3)处理查询,计算区间长度对数k后取两个覆盖区间的最大值输出。该算法通过预处理实现高效查询,是解决静态区间最值问题的经典方法。
2026-03-18 17:45:04
270
原创 洛谷P3128 [USACO15DEC] Max Flow P 【考点】:树上差分
本文解决树上路径覆盖统计问题,采用树上差分+LCA+后序遍历的方法。核心步骤:1)建树并预处理深度和倍增父节点;2)对每条路径s-t进行差分标记(milk[s]++,milk[t]++,milk[LCA]--,milk[fa[LCA][0]]--);3)后序遍历统计各节点被覆盖次数;4)输出最大覆盖值。时间复杂度主要取决于LCA查询和后序遍历,均为O(nlogn)。该方法巧妙地将路径覆盖问题转化为差分标记处理,适用于大规模树结构统计场景。
2026-03-18 12:42:01
475
原创 洛谷P3397 地毯 【考点】:二维差分
摘要:本文介绍二维差分方法解决矩阵区间修改问题。核心思路为逐行一维差分:1)初始化差分数组;2)对每个矩形区域(x1,y1)-(x2,y2),在每行执行差分操作(b[i][y1]++,b[i][y2+1]--);3)逐行求前缀和还原矩阵并输出。该方法高效实现了矩阵区间增量操作,最终直接输出每个位置的覆盖次数。代码简洁,时间复杂度O(n^2)。
2026-03-15 23:54:44
11
原创 洛谷P4552 [Poetize6] IncDec Sequence 【考点】:差分
本文介绍了一种基于差分数组解决区间增减序列问题的高效方法。核心思路是将原数组转换为差分数组,通过统计差分数组中正数总和p和负数绝对值总和q,得出最小操作次数为max(p,q),最终可能的不同序列数量为|p-q|+1。算法步骤包括:1)构建差分数组;2)计算正负项和;3)输出结果。该方法巧妙地将区间操作转化为差分数组处理,显著降低了计算复杂度。
2026-03-15 23:53:35
20
原创 洛谷P4427 [BJOI2018] 求和 【考点】:树上前缀和,倍增法求LCA
摘要: 本文解决树节点深度k次方和查询问题。给定一棵以1为根的树,预处理阶段通过DFS计算每个节点到根的深度k次方前缀和(k≤50),并构建倍增数组用于快速求LCA。查询时,利用前缀和公式:ans = s[u][k] + s[v][k] - s[LCA][k] - s[fa[LCA][0]][k],通过LCA拆分路径,避免重复计算。预处理复杂度O(n50),查询复杂度O(m20)。代码实现包括DFS预处理、LCA计算及取模处理,适用于大规模树结构查询。
2026-03-14 23:27:11
49
原创 洛谷P2280 [HNOI2003] 激光炸弹 考点:二维前缀和
摘要:本文解决二维平面上的最大子矩阵和问题,使用坐标偏移和二维前缀和优化。首先将坐标从0~5000偏移为1~5001,避免边界问题;然后预处理二维前缀和数组;最后枚举所有m×m的正方形区域,利用前缀和公式O(1)计算区域和,取最大值。该方法确保时间复杂度为O(n²),适用于5001×5001的大规模数据。
2026-03-14 08:00:00
211
原创 CCF-CSP 38-4 月票发行【C++】考点:动态规划DP+矩阵快速幂
本文提出了一种基于动态规划和矩阵快速幂的字符串匹配算法,用于计算满足特定模式匹配条件的字符串数量。算法通过状态机设计(10个状态)跟踪"ccf"和"cspark"两个模式串的匹配进度,将字符串按"#"位置分段处理。核心创新在于使用矩阵快速幂优化长段转移(O(size^3·logn)复杂度),并在遇到"#"时进行状态合并和重置。预处理转移矩阵的幂次后,算法能高效处理大规模输入。最终输出完整匹配任一模式串的合法字符串数量,模数为99
2026-03-13 16:56:12
539
原创 洛谷P8218 【深进1.例1】求区间和 考点:一维前缀和
本文介绍了一维前缀和算法实现区间求和的模板代码。代码首先预处理输入数组,计算每个位置的前缀和sum[i] = sum[i-1] + a[i]。对于m次查询[l,r]区间,通过sum[r]-sum[l-1]公式在O(1)时间内得出结果。算法将总时间复杂度从O(n×m)优化至O(n+m),并使用ios::sync_with_stdio(0)加速输入输出,适合处理大规模数据。
2026-03-13 16:56:03
190
原创 CCF-CSP 37-4集体锻炼【C++】考点:数学(最大公因数gcd特性),常数优化
TUOJ思路参考:第37次CCF计算机软件能力测试-第四题_csp集体锻炼-CSDN博客这题卡常了,大佬的代码亲测有3/32的测试点TLE优化1:把创建vector放在遍历右端点的循环外,每次循环clear对此AI给出的解释是:`cur.clear()` 仅将 vector 的大小置零,但保留已分配的内存(capacity),后续 `push_back` 可直接复用现有空间;而每次重新创建 vector 会频繁分配和释放内存,带来大量的堆操作开销,在循环次数多时差距尤其明显。
2026-03-12 11:27:42
976
原创 CCF-CSP 36-4 跳房子【C++】考点:BFS+剪枝
TUOJhttps://sim.csp.thusaac.com/contest/36/problem/3思路参考:出处是这个博客的评论区:CCF-CSP第36次认证第四题——跳房子【NA!巧妙利用BFS】_csp跳房子-CSDN博客BFS:通过队列逐层扩展,首次到达终点的路径即为最短跳跃次数。剪枝:由于是从最远端(k[t.pos])开始向近端尝试,如果某个跳跃点 t.pos + i 之前已经被其他路径访问过,那么比它更近的跳跃点(在之前的搜索中)也大概率被覆盖了(从远到近遍历也是为了方便减枝)可以让AI总结
2026-03-12 11:23:49
758
原创 CCF-CSP 35-4 通讯延迟【C++】考点:Dijkstra+虚拟节点思想
TUOJ思路参考:CCF-CSP第35次认证第四题——通讯延迟【C++满分题解;dijkstra算法+虚拟节点思想】_csp通讯延迟-CSDN博客。
2026-03-12 11:22:49
480
原创 CCF-CSP 33-2 相似度计算(jaccard)【C++】考点:STL容器(set/map)
TUOJ思路参考:202403(第33次)CCF CSP真题202403-1,2讲解_哔哩哔哩_bilibili。
2026-02-22 11:12:46
338
原创 CCF-CSP 32-2 因子化简(prime)【C++】考点:素数因子分解(试除法)
TUOJ思路参考:202312(第32次)CCF CSP真题202312-1,2讲解_哔哩哔哩_bilibili。
2026-02-22 11:01:08
549
原创 CCF-CSP 31-2 坐标变换(其二)(product)【C++】考点:前缀和
TUOJ思路参考:由于找到的oj判题有点问题,笔者不能保证代码100%正确,如果代码有问题欢迎各位指出。
2026-02-22 10:49:01
417
原创 【C++】矩阵翻转/n*n的矩阵旋转
刷题时被矩阵的旋转操作卡了n次了,决定写篇博客总结一下思路参考:第40次CSP认证前四题 - Oaths - 博客园这位大佬的实现个人感觉是比较符合直觉的(也比较好记)
2026-02-17 22:06:37
940
原创 CCF-CSP 40-3 图片解码(decode)【C++】考点:矩阵翻转/旋转
TUOJ思路参考:第40次CSP认证前四题 - Oaths - 博客园。
2026-02-17 21:10:07
1237
原创 CCF-CSP 40-2 数字变换(transform)【C++】考点:预处理
TUOJ思路参考:第40次CSP认证前四题 - Oaths - 博客园。
2026-02-15 23:43:34
620
原创 CCF-CSP 38-3 消息解码(decodeft8)【C++】
题目链接:TUOJ参考:CCF-CSP第38次认证第三题——消息解码(满分题解)_csp消息解码-CSDN博客。
2026-02-06 21:43:59
582
原创 CCF-CSP 37-3 模板展开(templating)【C++】
这种设计允许表达式既包含字符串字面量,也包含对其他变量的引用。【对上面的代码按照自己的习惯进行了改写,但是逻辑基本一致】对于间接赋值的变量,需要递归计算其依赖的所有变量。若未缓存:固定值 + 递归计算所有依赖变量的值。将最终结果存入变量的固定值部分,清空依赖列表。:存储表达式结构和依赖关系,查询时动态计算。:赋值时完成所有计算,后续查询直接返回值。:建立依赖关系网,查询时才计算。:所有直接字符串的长度总和。自动处理多层嵌套的变量引用。数组缓存每个变量的计算结果。立即计算所有部分的总和。
2025-12-07 22:38:52
794
原创 git,github使用&快速上手指南
太久不用GitHub发现自己又有些不会了,突发奇想为何不把每次看到的有指导意义的博客收录一下以便下次查阅呢。
2025-12-06 18:35:37
797
原创 第35次认证第三题——补丁应用【C++】
题解中最不好理解的可能是对每个补丁块进行处理的部分,强烈建议静下心来,对着案例1,在纸上推导一遍,相信会有豁然开朗的感觉。C++正则表达式 - cpluspluser - 博客园。
2025-09-13 12:38:05
497
原创 GAMES101 完结篇(笔记和作业)
我已经把笔记和作业代码放在了GitHub上,欢迎访问GAMES101笔记及作业 (github.com),如果对你有帮助,欢迎fork or star下面我想简单介绍一下这里面的东西GAMES101的学习就告一段落了,我现在处于边学习边寻找方向的阶段,以后还不一定用的上图形学,如果涉及这方面的东西估计会回头把那些公式再跟着老师推一下🆗那本专栏也就暂时到这里了。
2024-12-05 16:06:19
4396
原创 GAMES101虚拟机使用教程与探讨
环境配置请参考作业0的pdf,本文章主要对于配置好环境后怎么使用以及遇到的问题进行探讨(要是有更方便的使用方式欢迎在评论区讨论),自己刚开始用的时候也折腾了好久,希望能为后来学习的小伙伴节约一点工具使用上的时间吧,也是方便日后忘记怎么用了还能来看看。
2024-12-01 13:06:25
946
2
原创 GAMES101 作业 8 质点弹簧系统
这段代码通过计算弹簧力和使用显式 Verlet 积分方法更新质量点的位置,模拟了绳子的物理行为。这种方法在物理模拟中是常见的,因为它提供了相对简单的实现和良好的数值稳定性。显式 Verlet 积分方法(Explicit Verlet Integration)是一种用于数值模拟中的粒子系统和软体动力学的算法。它是一种位置-based dynamics(基于位置的动力学)方法,用于计算粒子在给定力的作用下随时间的运动。Verlet 方法以其简单性和稳定性而被广泛应用于计算机图形学和物理模拟中。
2024-12-01 12:40:46
1405
原创 GAMES101 作业 7: 路径追踪
这是一个衡量渲染质量的重要参数,它描述了在渲染过程中,对于屏幕上的每个像素点,我们发射了多少条光线(或者说进行了多少次采样)来计算其最终的颜色值。这种时候就得用“控制变量法”了,把佬写的正确的代码替换自己的代码,要是正确了就找到了自己的错误,替换了Scene.cpp文件后发现结果√。这段代码实现了路径追踪算法的核心逻辑,包括直接光照和间接光照的计算,以及俄罗斯轮盘赌技术来减少路径早期终止的影响。这段代码是一个路径追踪算法的实现,用于计算光线与场景中物体的交互,并返回最终的像素颜色。),则返回光源的颜色。
2024-11-30 14:26:30
1049
原创 GAMES101 作业 6: 加速结构(BVH)
总结来说,这段代码通过计算光线与包围盒在每个维度上的交点时间,并检查这些时间是否满足相交条件,来确定光线是否与包围盒相交。总结来说,这段代码通过递归地遍历BVH,检测光线是否与物体相交,并返回最近的相交信息。这段代码是光线追踪算法中的一部分,用于在包围体积层次结构(BVH)中查找光线与物体的交点。如果当前节点是叶子节点(即没有子节点),则检测光线是否与该节点包含的物体相交,并返回相交信息。如果光线没有与当前节点的包围盒相交,则直接返回空的相交信息。为节点的BVH中的物体相交,并返回相交信息。
2024-11-29 12:39:19
1389
原创 GAMES101 作业 4:Bézier 曲线【贝塞尔曲线】
这次参考了这位大佬的代码(也是看的他在b站上的讲解视频),就这次作业来说比之前那位佬写的要简洁一些🆗就这样吧。
2024-11-24 17:42:36
1351
原创 GAMES101 作业 3: Pipeline and Shading【渲染管线与着色】
虽然是先在b站看了讲解视频,然后照着GitHub大佬的代码写的,但还是出现了不少插曲,调试就花了我两三个小时qwq比起教程更像是记录一个小白的coding过程吧🆗就这样了,thanks for reading。
2024-11-24 12:04:11
1742
2
原创 GAMES101作业 2: Triangles and Z-buffering
我是先阅读理解了上面大佬的代码再敲的,我的代码等作业都完成了再开源出来。来对比大佬的代码和框架的不同,以便得知大佬在哪些地方做了改进。(参考,里面的矩阵和课程不一样,可能是左手系?第三列前两个是0,因为r是正数,l是负数。
2024-10-13 10:07:11
752
原创 GAMES101作业 1: 旋转与投影
ps,主要拜读了GitHub大佬的作业代码并结合自己的理解加上了一些注释,更适合0基础宝子的体质,虚拟机和主机之间拖动文件出bug了,有空再根据自己的理解写一遍,做一些点微调(
2024-09-23 22:31:08
1355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅