Loading

08 2021 档案

摘要:模型,给定 \(n\) 个点 \(m\) 条边的无向图,和 \(k\) 个关键点。选出边权和最小的一些边使得 \(k\) 个点连通。 因为选出的边一定是一棵树,所以称为最小斯坦纳树。 直接状压 \(f[i][S]\) 表示以 \(i\) 为根,与 \(i\) 联通的关键点集合为 \(S\)。 我们可 阅读全文
posted @ 2021-08-29 22:21 7KByte 阅读(96) 评论(0) 推荐(0)
摘要:首先考虑 \(D = n\) 的情况,有方程 $f_i = \max\limits_{j < i\land a_j<a_i}{f_j + 1}$​。 对于 \(D\) 的限制,我们对每个位置计算 \(p_i\) 表示从 \(i\) 开始,每次最多向前跳 \(D\) 格,只能跳到 \(\le a_i\ 阅读全文
posted @ 2021-08-28 21:54 7KByte 阅读(121) 评论(0) 推荐(0)
摘要:nb的树上思维DS题。 如果我们把每个指针的的指向集合作为状态,由于状态集合是有限的,并且相同的初始状态则结束位置相同,所以最后一定会循环。但是并不一定是纯循环。 由于这是一颗树,所以我们考虑特殊性质。如果是一个菊花图,显然就是一个排列不断循环。如果是链,手算一下发现就是从点 \(1\) 开始,不断 阅读全文
posted @ 2021-08-27 22:11 7KByte 阅读(180) 评论(0) 推荐(1)
摘要:题意:给定一个图,求最少需要加入多少条边使得图的 \(BFS\) 顺序可能为 \(1\sim N\)。 神仙题,首先得发现这是个线性 DP,并写出状态和方程,做到这里这题就完成了一半。 状态,我们定义 \(f_i\) 表示节点 $1\sim i$​ 的子图的答案。 转移 \(f_i + val(i+ 阅读全文
posted @ 2021-08-25 23:25 7KByte 阅读(330) 评论(0) 推荐(1)
摘要:先考虑 \(-1\) 的情况,显然没有出边的点是 \(-1\),将这样的点和对应的边删掉,直到每个点都有出边。显然被删掉的点都是 \(-1\),其余的点都不是 \(-1\)。 对于剩下的边,显然 \(r_i\) 最大的边如果走了,那么其他的边随便走,所以对应的 \(+p_i\) 没有意义。我们直接删 阅读全文
posted @ 2021-08-24 23:15 7KByte 阅读(377) 评论(0) 推荐(1)
摘要:麻了,并不知道自适应交互器怎么实现的/kk,但是题目还是可以想的( 最开始想直接 std::sort 一遍,事实上这个 \(<\) 没有传递性,会返回各种奇奇怪怪的结果。 事实上这是非常神仙的结论题。 结论:直接归并排序之后的数组满足 $a_i - a_{i + 1} \le 1$​。 并不知道出题 阅读全文
posted @ 2021-08-24 22:34 7KByte 阅读(254) 评论(0) 推荐(0)
摘要:很有意思的一道题。 不难发觉得关键还是在变化上。 我们用 \(1,2,3\) 表示分别表示三个字母,那么如果 \(c_1\neq c_2\),则 \(c_3 = c_1 \oplus c_2\),直接异或就行。 但是如果 \(c_1=c_2\) 根本表示不了,后面也没法做(罚坐了半个小时 考虑用 \ 阅读全文
posted @ 2021-08-23 22:48 7KByte 阅读(145) 评论(0) 推荐(0)
摘要:对于初始排列,就是求原序列的逆序对数。 对于逆序对我们可以拆开来算,用 \([i,j]\) 表示满足 \(a_u =i,a_v=j,i>j\) 二元组 \((u,v)\) 个数。 那么初始答案可以表示为 \(\sum\limits_{i = 1}^{k}\sum\limits_{j = i + 1} 阅读全文
posted @ 2021-08-23 21:54 7KByte 阅读(165) 评论(0) 推荐(1)