摘要:
首先考虑建出 dfs 树,如果一个点的深度 \(\geq \frac{n}{k}\),那么直接输出这个点到根的路径即可。 如果没有点深度 \(\geq \frac{n}{k}\),可以证明这棵树一定有不少于 \(k\) 个叶子(考虑反证法,如果叶子个数少于 \(k\),那么点数最多也不到 \(k\c 阅读全文
摘要:
考虑问两次,一次 \([1,n]\),一次 \([2,n]\),能够得到什么信息:长度为 \(1\) 的串,第一次询问多出来的串就是 \(s_1\);同理,长度为 \(2\) 的串多出来的两个字符,去掉 \(s_1\) 就是 \(s_2\);依此类推之后,发现可以直接求出所有位置的字符,并且字串总长 阅读全文
摘要:
首先考虑枚举矩形较小的边,这样每种数选的个数就是确定的了,用它去更新答案。考虑现在已经知道了答案矩形的两边长,那么如何构造出这个矩形:出现次数从大到小往里放,每次沿着一个斜线放下去,如果顶到了边界就换到下一个斜线,这样一定不会出现一个元素出现在同一行或同一列。 点击查看代码 const int N= 阅读全文