07 2025 档案

摘要:事实上,贪心并不属于一种特定的算法,而是一种极为重要的算法思想。 基础的大家都会,主要讲一下三种常见的贪心证明方式,即: 前面忘了 邻项交换法 数学归纳法 然后就是,贪心和 dp 都仅适用于具有最优子结构(局部最优解能推导出全局最优解)的问题。唯一不同的一点是,dp 是将所有子问题的最优解全部求出( 阅读全文
posted @ 2025-07-28 16:45 _KidA 阅读(13) 评论(0) 推荐(0)
摘要:here. T1 推柿子。(以下,令 \(S_i\) 表示 \(\sum ^i_{j=1} a_i\)。) \[\sum ^r_{i=l} a_i=r-l+1\\ S_r-S_{l-1}=r-l+1\\ S_r-r=S_{l-1}-(l-1) \]于是,我们令 \(p_i=S_i-i\),问题转化为 阅读全文
posted @ 2025-07-24 23:11 _KidA 阅读(9) 评论(0) 推荐(0)
摘要:here. T1 置换环。容易发现,把所有元素的起始位置和终点位置建边之后,会形成许多个环,每次交换相当于删掉了一个点,显然处理掉这个环的操作次数即为环的大小 -1。总操作次数当然就是所有环的点数-1之和,也就是 n-环的个数了。 T2 树剖。我的树上差分做法事实上是错的。 T3 发现求区间 mex 阅读全文
posted @ 2025-07-24 22:37 _KidA 阅读(3) 评论(0) 推荐(0)
摘要:here. T1 tarjan 即可。注意二元环的情况,不能判走到了父亲,而是判断走的是否为来时的边。 T2 线段树区间修改、区间查询即可。 T3 看到最大值最小考虑二分。对于二分出的答案 \(x\),它满足要求的条件即为删掉的边 \(\ge k\),这要求我们分出来更多的联通块。考虑贪心的思想,我 阅读全文
posted @ 2025-07-19 16:52 _KidA 阅读(10) 评论(0) 推荐(0)
摘要:here. T1 如果没有 INF 的情况,那么这题就是个完全背包。现在考虑什么情况下会有无数种凑不出的数。观察样例二可以发现所有数都是偶数,这样所有奇数都凑不出。事实上,将其推广一下即可发现,当且仅当所有数 \(\gcd=1\) 时,才能凑不出有限个数。 首先证明必要性,当 \(\gcd \neq 阅读全文
posted @ 2025-07-18 18:37 _KidA 阅读(5) 评论(0) 推荐(0)
摘要:T1 考虑构造形如下图(以 \(3 \times 3\) 为例): *.*.* .*.*. *.*.* 的情形,这便是最优策略。 T2 我们只考虑 \(1\) 的移动(因为 \(1\) 移动好了 \(0\) 也就归位了),并按顺序对应即可。感性理解。 T3 在本题,我们不关注移动的过程,只关注结果。 阅读全文
posted @ 2025-07-17 17:40 _KidA 阅读(5) 评论(0) 推荐(0)
摘要:here. T1 70 分是容易的(虽然我没拿到哈哈哈我是joker),考虑满分做法。 考虑贡献的思想,一个数的变化,只会对它及它后面的数造成影响。具体的,\(\forall i \in [2,n]\),要么 \(+(i \times a)\),要么 \(-(i \times b)\)。 第一个数很 阅读全文
posted @ 2025-07-16 20:57 _KidA 阅读(6) 评论(0) 推荐(0)
摘要:here. T1 令 \(dp_{i,j}\) 表示 前 \(i\) 个数 且结尾数字为 \(j\) 时的最小删数个数。 初始 \(dp_{0,a_i 末尾数字}=0\),答案 \(\min\{dp_{n,i}\}\)。 转移:删的情况,\(dp_{i,j}=\min(dp_{i,j},dp_{i- 阅读全文
posted @ 2025-07-14 21:47 _KidA 阅读(6) 评论(0) 推荐(0)
摘要:here. T1,T2 略。T3 将 T2 的循环顺序换一下即可(为了保证下次从编号更大的开始枚举)。 T4 多重背包板子。需要二进制优化,即对多个物品像 \(1,2,4,8,...\) 这样进行二进制分组,然后就能转化成 01 背包了。 T5 考虑部分分的做法,显然 01 背包可做。这启发我们这题 阅读全文
posted @ 2025-07-14 21:05 _KidA 阅读(6) 评论(0) 推荐(0)
摘要:here. T1 最大子段和。 T2 一开始没看到 \(a_i\) 有负数,人机本性暴露无遗。 令 \(dp_{i,0/1}\) 表示前 \(i\) 个书包且总和为奇数(1)或偶数(0)的最大值。初始 \(dp_{0,1}=-\infty\)(非法) 其余全 0。答案 \(dp_{n,0}\)。转移 阅读全文
posted @ 2025-07-13 22:57 _KidA 阅读(6) 评论(0) 推荐(0)
摘要:here. T1 容易发现只有叶子结点是可以用的,因为非叶子节点的儿子都已经饱和。于是算出有多少个空闲节点然后转移即可。 T2 其实标题就告诉你了这是个计数题。就随便数一下即可,具体看代码。 T3 同 T2。 T4 模拟一下样例可以发现,当加入一个不满足单调不减的宽度时,我可以删掉上一排的宽度以符合 阅读全文
posted @ 2025-07-11 23:47 _KidA 阅读(4) 评论(0) 推荐(0)
摘要:总体 抓住问题本质、转化问题 发掘性质 刻画条件和答案 贡献思想 从部分分获得灵感 模拟样例 正难则反 弱化问题思想 分组思想 图上问题 并查集:维护可达性问题。 二维偏序:排序 / 求出上限然后枚举。 建立图论模型: 分层图: 条件:有多个维度 / 有对于边权的操作 网格图 矩阵 做法:对于一个点 阅读全文
posted @ 2025-07-11 23:36 _KidA 阅读(8) 评论(0) 推荐(0)
摘要:here. T1 略。 T2 简单分层图,就是同层连 \(w\) 边,异层连 \(0\) 边(注意是 \(u \to v+n\) 和 \(v \to u+n\) 连,并且不能连回去)。 T3 同 T2。 T4: 现在要求 CD 最短路,显然可以将问题的关键在于要知道哪些边边权为 \(0\),这很显然 阅读全文
posted @ 2025-07-11 23:25 _KidA 阅读(5) 评论(0) 推荐(0)
摘要:here. A:考虑建立与 B 题同样的图论模型,然后就做完了。 B:略。 C:略。 D:考虑建立图论模型,有方向肯定是建分层图。对于一个点 \((x,y,d)\),它可以沿着之前的方向 \(d\) 建边到下一个点,边权为 \(0\);也可以换个方向建边,前提是遇到了障碍物或者边界,边权为 \(1\ 阅读全文
posted @ 2025-07-08 18:45 _KidA 阅读(5) 评论(0) 推荐(0)
摘要:here. T1 简单题,略过。 T2 因为加了方向这个维度,所以考虑以方向为层级建分层图,然后边宽搜边染色,最后被染色的最终那一层的点就是可能的终点。需要注意的是,每个方向上必须至少走一步,因此在节点入队之前要先走一步。 T3 注意到最多 20 步就能达成要求(一直乘 2 即可),并且很容易发现先 阅读全文
posted @ 2025-07-07 19:46 _KidA 阅读(6) 评论(0) 推荐(0)
摘要:100/400,rk4 阅读全文
posted @ 2025-07-06 23:04 _KidA 阅读(4) 评论(0) 推荐(0)
摘要:154/400,rk1 阅读全文
posted @ 2025-07-05 23:16 _KidA 阅读(9) 评论(0) 推荐(0)