文章分类 - 神仙题
摘要:前言 为什么没人写压位 Trie 啊? 思路 对于 \(|a_i-a_j|\) 的 \(a_i\) 和 \(a_j\) 一定是对于原序列排序之后相邻的两个数(及一个是前驱一个是后缀),那么很好想到可以一个 \(O(n\times \sqrt{n}\times \log(n))\) 的莫队做法,但是它
阅读全文
摘要:思路 看到这种区间覆盖可以优先考虑 ODT 了,因为每次它都覆盖的是一条路径那么考虑每次用 ODT 来修改,因为 ODT 需要时一个连续的区间所以直接套一个重链剖分即可,然后我们将询问离线,然后对于每一次询问按照通过树链剖分去跳链,然后将其加入树状数组中然后再将查询答案累积到答案中即可。 注意,因为
阅读全文
摘要:前言 这道题就难在很难看出是一个 2-sat 因为它不像别的 2-sat 的题一样那么一眼。 思路 观察到 \(n\times m\leq 10^6\) 所以我们可以定义 \(2\times n\times m\) 个状态,我们发现如果定义成 \(d_{i,j}\) 表示 \(x_i\) 选 \(j
阅读全文
摘要:前言 这道题是老师拉到点分治题单中的,可是我却一眼就出了另一个做法。 思路 首先对于这道题可以发现如果一个颜色如果仅需要依靠另一种颜色而一次这样下去最后一个颜色也仅需要第一个颜色,那么这样的话就能只将这些合并起来即可。所以我们可以将这种状态转移成建边的形式,如果对于两种颜色 \(x\) 和 \(y\
阅读全文
摘要:前言 我们可以发现这就是一个四维偏序,那么我们就可以采用 cdq 套 cdq 来解决它,然后这里还有两个双倍经验。 思路 我们可以得出一个 \(n^2\) dp,用 \(f_i=\max(f_j+val_i)\) 其中的 \(j\) 要满足四维不大于 \(i\)。 首先我们可以一维一维的来考虑。 对
阅读全文
摘要:前言 我们可以发现这就是一个四维偏序,那么我们就可以采用 cdq 套 cdq 来解决它,然后这里还有两个双倍经验。 思路 我们可以得出一个 \(n^2\) dp,用 \(f_i=\max(f_j+1)\) 其中的 \(j\) 要满足四维不大于 \(i\)。 首先我们可以一维一维的来考虑。 对于第一维
阅读全文
摘要:思路 首先我们可以得到一个很显然的 DP,我们定义 \(f_{i,j}\) 为现在用了 \(i\) 根值 \(\bmod m=j\) 的最大值,那么我们可以枚举 \(i,j\) 然后枚举第 \(i\) 位选什么即可。 所以可得转移方程为 \(f_{i+num_k,(j\times 10+k)\bmo
阅读全文
摘要:前言 一眼题。 思路 首先我们可以得到每一个人不是在左边就是在右边,那么对于每个人只有两种选择,符合 2-SAT 的标准,然后就可以思考如何连边了。 如果两个人是夫妻关系,那么他们不能做到同一边,所以如果 \(x_i\) 坐右边 \(y_i\) 坐左边,如果 \(x_i\) 坐左边 \(y_i\)
阅读全文
摘要:前言 宝藏 Dp 题,值得一做。 思路 我们首先想到的可能就是暴力去 DFS 但是时间复杂度显然过不去,所以我们有能想到从搜索优化到 Dp 但是我们显然不能存下来走的路径。所以我们转变思路,发下 \(n\leq 30\) 那么我们是不是就能想到一个 \(n^5\) 的 Dp 了。其实我们可以枚举出第
阅读全文
摘要:思路 我们可以发现这一定是一个区间 Dp,那么我们定义 \(f_{l,r}\) 为消掉 \(l\sim r\) 的最小操作次数,那么我们就可以枚举一个区间长度以及左端点。然后我们如果枚举的左右端点可以消掉,那么 \(f_{a,b}=f_{a+1,b-1}\) 即将中间消掉的代价。 然后我们可以枚举一
阅读全文
摘要:思路 一眼 Dp,我们定义状态 \(f_{i,j}\) 为用了前 \(i\) 个字符,组成的长度为 \(j\) 的方案数,这里的 \(i\) 个字符是指 a,b,c,d,e 这样的字符。那么我们对于一个字符 \(c\) 我们自然有 \(j-1\) 个空可以插入然后我们一共需要插入 \(k\) 个 \
阅读全文
摘要:前言 第一眼看到这道题的时候以为是个图论,可是发现老师放在 Dp 题单中的,便立即转变思路,然后一下就出来了。 思路 我们可以定义 \(f_i\) 为从 \(1\) 号点走到 \(i\) 号点是否可以,那么我们的转移只需要将互相能到达的两个点的路径相互转移一下即可,这里的转移方程为 \(f_i=f_
阅读全文
摘要:思路 这道题还是有一点难度的,我们首先可以发现这是一个 Dp,然后我们一眼就能想到一个定义状态的方式为 \(f_{i,j,k,l}\) 为前 \(i\) 个数选 \(j\) 个其总和模 \(k\) 等于 \(l\) 的方案数。我们这样定义的原因是因为既然平均数为整数,所以肯定有 \(sum\bmod
阅读全文
摘要:思路 我们可能会第一时间觉得这时一个贪心但是我们发现这是错的,因为我们的 \(a_i\) 后还跟了一个系数而有可能系数会决定所有而不一定是 \(a_i\)。然后我们来想 dp,我们定义 \(f_{i,l}\) 为将前 \(i\) 个数填到 \(l\sim l+i-1\) 的最大值,但是我们可以发现这
阅读全文
摘要:前言 人类智慧题,看到取模一眼 Dp。 思路 这道题的主要智慧之处就在于定义状态,我们定义 \(f_{i,j,0/1/2}\) 为现在枚举到第 \(i\) 位且第 \(i\) 位填 \(j\) 并且 \(a_i\) 大于等于小于 \(a_{i-1}\) 的方案数我们可以发现这样的话需要分类讨论。 \
阅读全文
摘要:前言 这是一道 \(n\) 被经验,详见此帖子,但是这道题的数据很小所以理论上没这么难。 思路 一眼哈希,我们可以用双哈希处理出每一段的哈希值然后在通过相减二求出一个区间的值,然后我们可以二分答案为 \(mid\) 那么我们就可以进行检查。 重点在于如何写 check,其实很简单我们通过双哈希给一个
阅读全文
摘要:前言 是通过另一道题来的,觉得这道题是神题就发题解了。 思路 这里我用的 SA 和莫队,我们首先可以得到一个很显然的性质,那就是对于两个串如果互相 \(A\) 在 \(B\) 中出现过那么 \(lcp(A,B)=\min(|A|,|B|)\) 然后我们就可以将所有的模式串拼在一起做一遍 SA。 然后
阅读全文
摘要:前言 这是一道神仙题,思路挺巧妙的。 思路 我们首先可以发现这是一个 2-SAT,那么我们先想如何建模,首先如果两个人是好友关系(后面用 \(i\) 和 \(j\) 表示),那么如果第 \(i\) 个人进了同谋者则 \(j\) 必须进后勤组,如果两人不是好友关系则第 \(i\) 个人进后勤组第 \(
阅读全文
摘要:前言 其实这道题是可以不用 2-SAT 的但是我是从 2-SAT 题单中进来的所以还是使用了 2-SAT。 思路 其实可以发现对于一条边只可能出现两种情况在圈内和在圈外所以我们只需要想如何连边即可,首先判断出矛盾的情况,再连边最后跑一遍 Tarjan 即可。这里重点就在于如何判断矛盾情况,如下图就是
阅读全文

浙公网安备 33010602011771号