CF710(EDU16) 题解 / 二进制分组优化 AC 自动机学习笔记

· · 题解

:::::info[闲话] 不要问为啥直接从 13 到 16 了。
:::::

A. King Moves:

:::::info[题目基本信息] 考察:字符串(800)。
题目简介:
在一个 8\times 8 的棋盘上放置了一个国际象棋中的王,它能向上、下、左、右、左上、左下、右上、右下的相邻格移动(不能移出棋盘),问王能到达几格。
数据范围:
这种题有什么数据范围…… ::::: 容易发现,王如果在角上能到达 3 格,在边缘能到达 5 格,否则能到达 8 格。
时空复杂度均为 \Theta(1)

B.Optimal Point on a Line:

:::::info[题目基本信息] 考察:数学(1400)。
题目简介:
给定 \{a_n\},求所有的整数 x 中顺序最小的 x。顺序的关键字是:

  1. 第一关键字是 \displaystyle\sum_{i=1}^n|a_i-x|,升序。
  2. 第二关键字是 x,升序。

数据范围:

分类讨论结束,接下来整理答案:

容易发现,最后答案就是 \displaystyle x=a_{\lfloor\frac{n}{2}\rfloor}
证毕。
::::: 时间复杂度为 \Theta(n\log n),空间复杂度为 \Theta(n)

C. Magic Odd Square:

:::::info[题目基本信息] 考察:构造(1500)。
题目简介:
请你构造一个 n\times n 的矩阵 a_{i,j},满足:

数据范围:

数据范围:

求最小代价。
数据范围:

综上,转移方程为:

f_i=\begin{cases}0&i=0\\x&i=1\\\min(f_{i-1}+x,f_{\frac{i}{2}}+y)&2\mid i\\\min(f_{i-1}+x,f_{\frac{i+1}{2}}+x+y)&\text{otherwise}\end{cases}

时空复杂度均为 \Theta(n)

F. String Set Queries:

:::::info[题目基本信息] 考察:AC 自动机(2400)。
题目简介:
维护一个字符串集合,有 3n 个操作:

  1. 加字符串 s
  2. 删字符串 s
  3. 查询集合中的所有字符串在给出的字符串 s 中出现的总次数。

强制在线
数据范围: