10 2025 档案

摘要:远古时期做的题了没想到竟然能写题解。 思路 模拟。其实题面已经把思路给出来了,强行覆盖即可。 这里只讲几个需要注意的点。 因为没有限制高度,所以把初始点放在最中间(旁边也可以),输出的时候像四周找就可以了。 拼的时候四个角的坐标别算错了。 因为 \(1\),所以数组要开大一点。 点击查看代码 #in 阅读全文
posted @ 2025-10-23 08:19 虚空远行者 阅读(5) 评论(0) 推荐(0)
摘要:简化题意 给你 \(k\) 个点以及 \(m\) 条边,其中有 \(n\) 个点已经被选择,问至多再选两个点后最多有多少条边的端点都被选了。 思路 我们可以把边分为 \(3\) 类: 两个端点都被选择了,这时直接加入答案。 有一个端点被选择,我们将另一个端点的贡献 \(+1\),特殊的,自环也算这种 阅读全文
posted @ 2025-10-22 15:24 虚空远行者 阅读(8) 评论(0) 推荐(0)
摘要:线性DP 就是在线性数据结构上用DP,简称线性DP。 说人话就是用线性数据结构来优化DP。 一般用单调队列或单调栈优化。 单调队列主要用于维护两端指针单调不减的区间最值,而单调栈则主要用于维护前/后第一个大于/小于当前值的数。 其实就是用线性数据结构维护能转移到当前状态的所有数值,每次接近 \(O( 阅读全文
posted @ 2025-10-20 10:16 虚空远行者 阅读(3) 评论(0) 推荐(0)
摘要:莫队入门 莫队是一种离线算法,适用性及其广泛。 只要就是用区间 \([l,r]\) 去 \(O(1)\) 扩展到 \([l+1,r],[l-1,r],[l,r+1],[l,r-1]\),继续扩展知道将区间移动至下一个要查询的区间。最优可以再 \(O(n\sqrt{n})\) 的时间内完成。 实现 将 阅读全文
posted @ 2025-10-16 08:59 虚空远行者 阅读(8) 评论(1) 推荐(0)
摘要:前置知识 分块、线段树 只能用来装逼(快不了多少) 思路 注意到分块太慢了,不是完整的块需要暴力修改。 于是我们想到了一种特殊的方法:对每一个块建一棵线段树,修改/查询时不是完整的块就用线段树查询。 于是这个方法的码量很大。但是最坏复杂度能达到惊人的 \(O(nlog\sqrt{n})\)! 但是。 阅读全文
posted @ 2025-10-14 15:53 虚空远行者 阅读(8) 评论(0) 推荐(0)
摘要:考虑暴力。 先算出骑士从每个点到任意一点的最少步数,以及是否可以到达。再算出国王从起点到每个点的最少步数(不难证明每个点一定可以到达)。 然后枚举起点、骑士接到国王的点、哪个骑士接国王,最后把答案求最小值就好了。 但是会超时,怎么办呢? 注意到当有一个骑士和国王一开始就在同一格内时并不需要枚举上述第 阅读全文
posted @ 2025-10-14 15:43 虚空远行者 阅读(15) 评论(1) 推荐(0)
摘要:强连通分量 定义 有向图 \(G\) 强连通是指,在 \(G\) 内任意两点都可以互相到达。 强连通分量是指极大的强连通子图。 tarjan求强连通分量 dfs生成树 如上图,主要有 \(4\) 种边: 树边(图中的黑色边):从一个已访问节点遍历到一个未访问节点时就形成了一个树边。 返祖边(图中的红 阅读全文
posted @ 2025-10-08 17:08 虚空远行者 阅读(9) 评论(0) 推荐(0)
摘要:以后不会正解就用这东西。 随机函数 说一个单独的数是「随机数」是无意义的,所以以下我们都默认讨论「随机数列」,即使提到「随机数」,指的也是「随机数列中的一个元素」。 现有的计算机的运算过程都是确定性的,因此,仅凭借算法来生成真正不可预测、不可重复的随机数列是不可能的。 实现 rand rand函数可 阅读全文
posted @ 2025-10-04 14:23 虚空远行者 阅读(13) 评论(0) 推荐(0)
摘要:现在有这些按钮: 按钮 \(1\):当按下此按钮,将改变所有的灯:本来亮着的灯就熄灭,本来是关着的灯被点亮; 按钮 \(2\):当按下此按钮,将改变所有奇数号的灯; 按钮 \(3\):当按下此按钮,将改变所有偶数号的灯; 按钮 \(4\):当按下此按钮,将改变所有序号是 \(3k+1 \ (k \i 阅读全文
posted @ 2025-10-03 09:58 虚空远行者 阅读(14) 评论(0) 推荐(0)