摘要:
洛谷 对于暴力写法,我们很容易想到一个 \(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)

浙公网安备 33010602011771号