c++考场RE排错指南 在C++的代码竞赛中,越界是一种类隐蔽性强、调试难度大的问题,尤其是涉及STL容器时,其表现往往难以预测,可能导致程序崩溃、输出错误结果,甚至看似”正常运行”却在评测时出错,我们一般称之为“一切皆有可能”。以下是这类问题的常见场景和特点: 一、常见的越界错误场景1. 数组/vector的索引越界 访问arr[i]时,出现i小于0或大于等于容器大小。这时如果我们在定义数组时没有多定义几位, 2025-07-21 编程 > 笔记 #原创 #教程 #笔记
夏令营7.21总结 线性DP难点: 如何划分阶段(看出他是线性DP) 如何定义子问题(需要什么状态) 哪些状态是需要考虑的(可行的),哪些又是不用考虑的 如何快速进行状态转移 如何减少状态数 ………. 重点: 快速进行状态转移(主要) 减小状态数 T1 方格取数f$[i][j]$表示从$(1,1)$到$(i,j)$的路上的数字和的最大值。 答案是$f[N][M]$。 正确的递推式:从$j=1$行的摸 2025-07-21 编程 > 总结 #原创 #夏令营 #总结
夏令营7.20总结 时间$8:30\sim12:00$模考(等于没写,但是由于我忘记记录时间导致忘了怎么写具体的时间,就不写了)。 题目T1核心思路我们需要找出所有能用围栏围住的奶牛子集,关键在于确定每个有效子集对应的最小包围矩形。 关键步骤首先进行坐标压缩预处理: 将原始坐标映射到$[0, N-1]$的连续区间 消除坐标值过大带来的计算复杂度例如:将坐标$(103, 205)$压缩为$(1, 2)$。 有效矩形 2025-07-20 编程 > 总结 #原创 #夏令营 #总结
夏令营7.19总结 动态规划全称dynamic programming,DP 狭义上是子问题的递推。广义上等于递推,但是几乎不考虑。 三要素: 子问题(状态) 递推式(状态转移) 边界条件(边界状态) $DP$的两种方式 后向$DP$填表法$pull\ DP$从前往后更新 前向$DP$刷表法$push\ DP$从后往前找哪些可以更新状态,并更新。 在一个序列上的$DP$:序列又两种子结构前缀(一个参数)和区间 2025-07-19 编程 > 总结 #原创 #夏令营 #总结
人们为什么还要使用电脑? 电脑十分的不安全,据说洛谷还遭到攻击了,所以说,电脑到底有什么用,我有一种防黑客的简单粗暴的方法,大家可以看一下: 第一步,销毁你的电脑,让黑客无从下手(比任何的安全防护都强) 第二步,打电话,让洛谷通过邮寄的方式,把题目送到你的家里 第三步,比赛的时候,你把程序写到白纸上,然后交上去,接着,裁判就通过人工模拟的智能算法,验证你的分数。 这样黑客再强大,也无从下手![1] 这个帖子是我从洛谷转载到 2025-07-18 其他 #花里胡哨 #搬运/非原创
夏令营7.18总结 Day7 模考 时间分配$8:30\sim8:40$做T1,AC $8:40\sim8:50$做T2,AC $8:50\sim9:30$做T3,AC $9:30\sim10:00$尝试T3,样例不对 $10:00\sim10:20$尝试T4,过不了 $10:20\sim10:30$T4骗分,30tps 题目T1比较简单。 定义$a_i$代表袋子里又$i$个标号为$a$的球。 同时额外累计一个ans 2025-07-18 编程 > 总结 #原创 #夏令营 #总结
骗分导论 骗分是什么呢?骗分就是用简单的程序(比标准算法简单很多,保证新手能轻松搞定的程序),尽可能多得骗取分数。这个主要是因为CSP、NOIP、蓝桥杯、PAT 等竞赛的 OI赛制 决定的,只比对输出结果。 打油诗: 数学上来先打表,贪心只能过样例。DP一般看规律,模拟只会猜题意。图论强行套模板,组合数学靠运气。分治做得像枚举,计算几何瞎暴力。数据结构干瞪眼,数论只会GCD。递归递推伤不起,搜索茫然TLE。 2025-07-17 编程 #原创 #教程 #笔记 #花里胡哨
夏令营7.17总结 昨天休息所以没有总结。 数上问题数的定义和性质什么是树? 有$n-1$条边且连通 有$n-1$条边且无环 任意两点之间有唯一路径 T1 构图判树直接找所有的包含区间,找到就加边,如果超过了,就输出no。 条件:数只有$n-1$条变F. 有根数指定一个顶点r为根节点,就可以解决很多问题。 节点到根节点的深度称为深度,深度相同的节点位于同一层。高度是深度的最大值。 还有一堆: ![屏幕截图 202 2025-07-17 编程 > 总结 #原创 #夏令营 #总结
夏令营7.15总结 今天又模考了。 时间线$8:30\sim8:40$自习,题目坏了 $8:40-9:03$做T1,AC $9:04\sim9:30$做T2,69tps $9:30\sim10:00$想T3-T4 $10:00\sim10:40$尝试T4 $10:40\sim11:20$尝试T3 $11:20\sim12:00$再次T2,变成60tps 题目T2(T1太简单,先不写了) 每个值出现了几次? map&l 2025-07-15 编程 > 总结 #原创 #夏令营 #总结
夏令营7.14总结 二分lower_bound与upper_bound用于查找在一个有序数组中的元素。lower_bound(a,b,x)返回第一个不小于x 的元素的指针或迭代器。如果不存在就返回e;upper_bound(a,b,x)是返回第一个大于x 的指针或迭代器。如不存在返回e。 lower_bound是大于等于,upper_bound是大于。 参数:初始地址,结束地址,数字返回的参数也是地址,要减去开始地址 2025-07-14 编程 > 总结 #原创 #夏令营 #总结