摘要:
D 枚举是哪一位相同,情况为 \(00\) 还是 \(11\),然后用前缀和和后缀和求一下即可。 \(pre_{j,i}\) 表示第一位为 \(j\),前 \(i\) 位的每两个相同的字符均不相同的情况,\(suf\) 同理。 code E 从后往前考虑。 每一种颜色能染上这一行 / 列没有被染色的 阅读全文
摘要:
problem & blog 由于看到和三进制有关的操作,可以想到建造每个结点都有三个儿子的 Trie。考虑维护两种操作。 1.Salasa 舞 对于这种操作,就是把每一个节点的第一个儿子和第二个儿子交换。所以两个节点打个标记即可 2.Rumba 舞 本质即为 \(0 \to 1,1 \to 2,2 阅读全文
摘要:
problem & blog 构造题。 把从 \((1,1)\) 到 \((n - 1,m - 1)\) 的所有数变成 \(0\),这样从第 \(1\) 行到第 \(n - 1\) 行的最后一个数必定能满足要求。从第一列到第 \(m - 1\) 也是如此。 于是我们只需要检查最后一个数存不存在即可。 阅读全文
摘要:
E 建反图 + 拓扑排序。 先求出直接与 \(n\) 连接的点的答,就是最后一辆车的发车时间。然后再做拓扑排序。 假如我们知道点 \(u\) 的答案为 \(ans_u\) 并且 \(u,v\) 相连,那么我们点 \(v\) 到点 \(u\) 是在第 \(ans_u - w\) 分钟之前的第一班这的发 阅读全文
摘要:
problem 考虑使用 dfs 模拟。 由于一个程序可能在不进入无限循环的情况下运行很多步,这将会非常缓慢。因此,接下来要加速模拟,可以用记忆化搜索。 在网格中,机器人的可能状态(位置和朝向)只有 \(4 \times R \times C \le 6400\) 种情况。 并且执行程序可能会处于的 阅读全文
摘要:
E 我们可以知道每一个点在每一轮加多少,具体如下: 假如现在操作的点的为 \(k\)。那么所有的数都至少会加 \(\dfrac{A_k}{n}\)。但是肯定有剩的,剩了 \(A_k \mod n\)。 很明显,\(A_k \mod n\) 会分给接下来的 \(A_k \mod n\) 个数。 这样我 阅读全文
摘要:
题解不应该流露出太多感情,对吧。 E 建议评黄。 首先我们可以想到暴力 dp。 定义 \(dp_i\) 为以 \(a_i\) 为结尾满足题目意思的最长序列的长度。 很明显,时间复杂度为 \(O(n^2)\) 不可通过本题。 我们发现一个序列以 \(a_i\) 为结尾,那么上一位绝对是以 \(a_i- 阅读全文
摘要:
Part -1 前言 本文为莫队学习笔记,如果有错误,请提出,谢谢捏。 窝的题单可以配套使用 Part 0 目录 普通莫队 1.形式 2.算法流程 3.小trik 4.例题 1.小Z的袜子 2.AHOI2013作业 3.八云蓝自动机 Ⅰ 带修莫队 1.引入 2.过程 3.实现 回滚莫队 1.引入 2 阅读全文
摘要:
点分治 0.用处 点分治一般用于树上路径的问题。 比如求条数等。 1.点分治过程 选择一个根节点 计算贡献,贡献一般有一下两种 1.两个点的路径经过根节点 2.两个点在同一个子树内 然后把根节点删掉,分成若干棵树,对每一棵树做同样的操作 然后每一次我们只需要计算两个点的路径经过根节点的贡献即可。 2 阅读全文