摘要: 看上去毫无思路感觉不可做,可以先考虑暴力。 不难发现如果将整个区间一起考虑十分不好做,我们可以考虑对每一位进行限制,于是对于每个限制,我们将要求相同的每个位置加入并查集,那么最终答案就之和连通块个数有关了。 下面考虑优化这个暴力的过程,可以发现单独考虑每一位很好做是因为这些需要限制的区间是已知且能表 阅读全文
posted @ 2020-08-04 18:48 Achtoria 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 不难发现本题贪心是不好做的,可以考虑 \(dp\)。 首先的一个想法就是令 \(dp_{i, j, k, l}\) 表示当前选到第 \(i\) 个位置,当前第一个序列选了 \(j\) 个数,当前第一个序列最后一个元素为 \(k\),第二个序列最后一个元素为 \(l\) 是否合法。这样的话转移十分显然 阅读全文
posted @ 2020-08-04 17:36 Achtoria 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 首先可以发现我们可以发现最终状态和初始状态都是一个大小为 \(n\) 的排列,且恰好有 \(n\) 种关系,于是我们对于每个 \(a_i\) 连一条 \(a_i \rightarrow b_i\) 的有向边,这张图的形态将会相对简单。 因为每个位置最终变成的数不同,因此这张图将会是由若干个简单环构成 阅读全文
posted @ 2020-08-04 11:37 Achtoria 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 首先一个简单的想法是令 \(dp_{i, j}\) 为以 \(i\) 为根的子树内选择了 \(j\) 个黑点的最大收益,但你会发现这个东西无论怎样转移都需要涉及深度和,如果我们记入深度和就不可能通过这道题了。 不妨换一种想法,我们把每条路径的贡献拆分到每条边上去,即我们计算每条边对总答案的贡献。不难 阅读全文
posted @ 2020-08-04 11:21 Achtoria 阅读(94) 评论(0) 推荐(0) 编辑