摘要: 洛谷 对于暴力写法,我们很容易想到一个 \(O(n^2)\) 的暴力。 我们可以先从左到右枚举需要配对的字符,然后从后往前去找到一个合法且相同的字符配对。 对于怎样才算合法,我们通过此部分内部是否合法,以及前面是否有已选择的括号判断。 在括号本身是合法的情况下,我们处理右边是否合法,对于本身存在解的 阅读全文
posted @ 2025-12-07 12:32 huhangqi 阅读(4) 评论(0) 推荐(0)
摘要: 洛谷 首先我们设更赛牛为加一,荷斯坦牛为负一。 这样通过前缀和就可以得到这一组是否需要增加一。 设 \(dp_i\) 表示以 \(i\) 为末尾,最少的分区。 那么方程式就为: \[dp_i=dp_j+(pre_i-pre_j\le 0) \]然而表达式我们并不好判断。 但是由于表达式只能提供数值为 阅读全文
posted @ 2025-12-07 12:26 huhangqi 阅读(4) 评论(0) 推荐(0)
摘要: 洛谷 我们可以考虑使用动态规划来解决。 在线性情况下,我们可以直接将状态设为 \(dp_i\) 表示走到 \(i\) 号点的时候的最小路程。 可以得到状态转移方程: \[dp_i=\min(dp_j+(l_i-l_j)\times v_i+s_i) \]其中 \(l_i\) 表示 \(i\) 号点到 阅读全文
posted @ 2025-12-07 12:23 huhangqi 阅读(6) 评论(0) 推荐(0)
摘要: 洛谷 由于环非常难处理,但是这个数据范围又很小,所以很容易想到枚举一个谷仓的位置,然后以这个地点为起始点使用动态规划。 为了使转移方便,我这里选择了逆时针处理这样计算这一段奶牛的路程。 我们定义 \(dp_{i,j}\) 表示已经选择了 \(i\) 个谷仓,目前最后一个选择的谷仓为 \(j\) 时的 阅读全文
posted @ 2025-12-07 12:20 huhangqi 阅读(4) 评论(0) 推荐(0)
摘要: 洛谷 首先观察部分分,对于前两组部分分,可以直接暴力枚举左右端点。 对于第三组部分分,从前缀和的角度去思考,然后可以发现假设一个数字为正数,一个数字为负数,开桶进行统计,只要两种人数不打平即可。 代码: #include<bits/stdc++.h> #define int long long us 阅读全文
posted @ 2025-12-07 12:18 huhangqi 阅读(5) 评论(0) 推荐(0)
摘要: Codeforces 很明显是一道偏序问题,我们先列出满足条件的台之间的关系。 \[\min(r_i,r_j)\ge|x_i-x_j| \]\[|f_i-f_j|\le k \]这看起来好像是两条式子,但是不能直接使用二维偏序解决,因为其中含有取最小值操作,所以无法直接使用二维偏序处理。 那么就可以 阅读全文
posted @ 2025-12-07 12:13 huhangqi 阅读(8) 评论(0) 推荐(0)
摘要: 洛谷 由于需要考虑颜色的问题,所以可以考虑将总方法减去相同颜色的方案数,以此得到本次的结果。 使用前缀和,得到此处的方案总数。 然后就需要考虑如何处理颜色的问题了,由于需要进行区间修改与查询,很容易想到使用线段树进行优化,但是按照颜色数写很多树状数组明显空间开不下。 所以使用动态开点的方法。由于一棵 阅读全文
posted @ 2025-12-07 11:59 huhangqi 阅读(2) 评论(0) 推荐(0)
摘要: 洛谷 很明显是一个扫描线问题,但是明显比大部分扫描线复杂,因为除了要预处理还需要大量的分析。 由于题目要求我们求出在 \(x\) 左边铺上满足要求的最大值,所以可以以纵轴平行的边作为扫描线。 由于每条边之间可能会有一些没有用的端点,在建边时需要对这些边进行一个合并操作,即把两个边加在一起。 由于要进 阅读全文
posted @ 2025-12-06 16:22 huhangqi 阅读(6) 评论(0) 推荐(0)
摘要: 洛谷 20pts 直接枚举左右端点,然后判断答案即可。 35pts 由于只有 \(k\) 个数,那么每一个数都一定会对应一种 \(i\) 的取值,也就意味着满足条件的情况一定是是每个数分别对应一种出现次数。 这样的话可以发现长度已经固定了,长度最长也只有 \(10\),那么直接枚举即可。 70pts 阅读全文
posted @ 2025-12-06 16:14 huhangqi 阅读(10) 评论(0) 推荐(0)
摘要: 洛谷 由于两个人都会选择最优方案,因此可以考虑使用动态规划来模拟进行选择。 我们可以记录第一个人的得分,然后通过总得分减去第一人得分得到第二人得分。 首先我们考虑处理出每次取出什么位置会得到分数。 由于是从左右两边取出,因此可以得分的情况只能够是这一种球的最左端或者最右端。 我们可以先离散化再处理。 阅读全文
posted @ 2025-12-06 16:11 huhangqi 阅读(17) 评论(0) 推荐(0)