随笔分类 -  题解

摘要:分析 题意十分简单,不难推出式子: $ f_i = \sum_{j=1}^{i-1} f_j \times (\max_{k=j+1}^i a_k - \min_{k=j+1}^i a_k) $ 但我们考虑这个 \(O(n^2)\) 的东西显然是冲不过去的,所以必须优化转移。 式子后面两块都是极值, 阅读全文
posted @ 2024-11-25 21:29 p7gab 阅读(27) 评论(0) 推荐(0)
摘要:题面 做法 先补一下ST表求LCA的做法。 欧拉序就是dfs遍历这颗树经过每个节点的顺序。 欧拉序有一个优美的性质,就是给定两个端点 \(l,r\) ,则 \([l,r]\) 之间深度最小值即是 \(l,r\) 的LCA。 我们 \(dfs\) 时需要统计 \(dep_u,dfn_u\) 以及欧拉序 阅读全文
posted @ 2024-11-19 08:16 p7gab 阅读(52) 评论(0) 推荐(0)
摘要:简要题意 给定一个整数 \(n\),问把 \(n\) 表示成一些数的立方和的方案数,注意相同的数算一种方案。 解析 题中告诉我们,选的数小于 \(10000\),所以可以先打表将小于 \(10000\) 的完全立方数存一下。 之后我们不妨将每个数字 \(x\) 视作一个重量为 \(x^3\) 的物品 阅读全文
posted @ 2024-10-04 09:23 p7gab 阅读(20) 评论(0) 推荐(0)
摘要:简要题意 给定一个长度为 \(n\) 的序列,求区间两端数字均不与区间中其他数字相等(包括另一端)的区间数量,且长度不小于二。 解析 先考虑一下最好办的情况,显然就是所有人的年级都不相等。 比如 1 3 2 4 6 7 8,如何统计? 可以直接写结论,但我们不妨这样看:(1,2)显然只有一种,加上了 阅读全文
posted @ 2024-08-12 19:17 p7gab 阅读(20) 评论(0) 推荐(0)
摘要:简要题意 给定一个 \(m \times n\) 的 01 大矩阵,询问 \(q\) 个 $ x \times y$ 的 01 矩阵是否在大矩阵中出现过。 解析 本题是二维哈希的板子。 二维哈希其实就是二维前缀和与哈希的结合 我们先思考一维哈希实现过程: 在一维哈希中,我们是将长度为 \(m\) 的 阅读全文
posted @ 2024-08-09 15:00 p7gab 阅读(37) 评论(0) 推荐(0)
摘要:简要题意 \(n\) 个点,\(m\) 条带权边的无向图,另外还有 \(k\) 条连接 \(1\) 和 \(i\) 的边 。 在保证每个点到 \(1\) 的最短距离不变的前提下,最多可以删掉 \(k\) 条边中的的几条。 解析 最暴力的想法即逐条断掉网道之后跑一遍最短路即可,但 \(k\) 也是 \ 阅读全文
posted @ 2024-08-09 14:21 p7gab 阅读(20) 评论(0) 推荐(0)
摘要:思路 由于雪球之间的相对位置是不会改变的,所以对于一个雪球,越过相邻的雪球的初始位置一定不会令其变大。 如果雪球的滚动范围没有交集,答案显然就是区间长度。但如果有了交集,我们必须判断哪个雪球先滚到,一个区间便分为了分属左右两雪球的两个区间,于是就要找出两边最后一次不交的那个断点。 由于断点具有单调性 阅读全文
posted @ 2024-02-20 09:52 p7gab 阅读(30) 评论(0) 推荐(0)
摘要:思路 由于雪球之间的相对位置是不会改变的,所以对于一个雪球,越过相邻的雪球的初始位置一定不会令其变大。 如果雪球的滚动范围没有交集,答案显然就是区间长度。但如果有了交集,我们必须判断哪个雪球先滚到,一个区间便分为了分属左右两雪球的两个区间,于是就要找出两边最后一次不交的那个断点。 由于断点具有单调性 阅读全文
posted @ 2024-02-20 09:50 p7gab 阅读(22) 评论(0) 推荐(0)
摘要:题意 给定一个 \(01\) 字符串 \(S\),定义相邻字符均不同的字符串为好串,要求支持两种操作。 1 L R,将从 \(L\) 到 \(R\) 的区间取反。 2 L R,查询 \(S\) 从 \(L\) 到 \(R\) 的子串是否为好串。 分析 没有接触过这种题的建议去看一眼 P6492。 比 阅读全文
posted @ 2024-02-19 13:43 p7gab 阅读(28) 评论(0) 推荐(0)
摘要:分析 如果想让以 \((x_i,y_i)\) 和 \((x_j,y_j)\) 为中心的两个正方形重叠,那么显而易见 \(|x_i-x_j|<k\) 且 \(|y_i-y_j|<k\)。 由于 \(n \le 5 \times 10^4\),所以 \(O(n^2)\) 的暴力显然过不去,\(n \le 阅读全文
posted @ 2023-11-16 22:00 p7gab 阅读(32) 评论(0) 推荐(0)
摘要:题意 给定一棵 \(n\) 个点的树,要求支持两种操作。 1 x d w,使所有和点 \(x\) 之间距离 \(\le d\) 的点乘以 \(w\) 并模一个给定的数 \(L\)。 2 x,查询点 \(x\) 的值。 分析 本题的代码量其实不大,就我而言,难度主要在能想到如何利用 \(d\le40\ 阅读全文
posted @ 2023-11-13 21:23 p7gab 阅读(25) 评论(0) 推荐(0)
摘要:题意 给定一棵 \(n\) 个点的树,要求支持两种操作。 1 x d w,使所有和点 \(x\) 之间距离 \(\le d\) 的点乘以 \(w\) 并模一个给定的数 \(L\)。 2 x,查询点 \(x\) 的值。 分析 本题的代码量其实不大,就我而言,难度主要在能想到如何利用 \(d\le40\ 阅读全文
posted @ 2023-11-12 22:32 p7gab 阅读(54) 评论(0) 推荐(0)
摘要:简要题意 给定一个森林,可以在树与树之间连边,不可成环,求最长链。 解析 对于一棵树而言,她本身的最长链自然就是她的直径。 贪心的想,把所有的树的直径全部连接起来就是最长的那一条链。 所以,对于每一棵树求出她的直径然后求和就好了。 特别注意,这题的长度是指节点的个数,因此比边数大 \(1\)。 代码 阅读全文
posted @ 2023-11-08 20:46 p7gab 阅读(26) 评论(0) 推荐(0)