牛客 10662 | ICPC 2020 济南

https://ac.nowcoder.com/acm/contest/10662

J

题意:
给定 (n) 个点的一棵树。
构造 (a_1, a_2, ..., a_n)
(a_i ~ ext{or}~ a_j = 2 ^ {60} - 1),则 (i, j) 连边,反之不连边。
连出来的图满足树的形态。

思路:黑白染色

构造题的一些套路:

  • 增量
  • 倍增
  • 随机
  • 染色
  • 特化
  • 换思路

顺便又练了一两个构造题。

  • 给定 (n, k),构造 (n) 元排列,使 (|a_i - a_{i + 1}|) 有恰好 (k) 种取值
    思路:特化,换思路

  • 题意:lpy决定在实验课上抄dzc大佬的实验数据,已知dzc大佬的数据共有n个,其中最大值与最小值之差最多为2, lpy要魔改这n个数据满足数据的平均值和dzc的平均值一样,且最大值最小值分别不大于不小于dzc的最大值最小值。在此前提下魔改出两个人相同数据最少的方案。
    思路:分析

K

题意:给定长度为 n 的序列 a[1..n],Q次询问,每次给定 L, R, K,询问对所有 L <= S <= R,【a[i] xor S 的第 K 小值】 的最大值。

思路:Trie树的每一个结点预处理 S 的选法任意的情况下,第 1, ..., size 小的最大值。

对于数位题,只需要考虑没有限制的数位问题,然后再套上按数位枚举的爆搜。这个框架我得弄明白。

场上不会做就离谱,好烦啊。

原文地址:https://www.cnblogs.com/Sdchr/p/14649808.html