AT_abc452_c [ABC452C] Fishbones
题目描述
艺术家 Takasago 创作了一个鱼骨头形状的作品。
该作品由 $N$ 根肋骨和一根脊骨组成。肋骨按 $1$ 到 $N$ 编号。
他想在这 $N+1$ 根骨头上各写一个字符串,使其满足以下所有条件:
- 写在脊骨上的字符串长度为 $N$。
- 对于每根肋骨 $i = 1, \dots, N$,需满足:
- 写在第 $i$ 根肋骨上的字符串长度为 $A_i$。
- 写在第 $i$ 根肋骨上的字符串的第 $B_i$ 个字符与脊骨上写的字符串的第 $i$ 个字符相同。
- 每个骨头上所写的字符串需从 $S_1, \cdots, S_M$ 中选择(可以重复选择)。
$S_1, \cdots, S_M$ 均为仅包含小写英文字母且互不相同的字符串。
对于每个 $j = 1, \cdots, M$,请回答以下问题:
- 是否存在一种满足上述条件的方案,使脊骨上写的字符串为 $S_j$?
输入格式
输入通过标准输入给出,格式如下:
> $N$
> $A_1\ B_1$
> $\vdots$
> $A_N\ B_N$
> $M$
> $S_1$
> $\vdots$
> $S_M$
输出格式
输出 $M$ 行。
第 $j$ 行($1 \leq j \leq M$)若存在一种方案使脊骨上写 $S_j$ 并满足所有条件,则输出 `Yes`,否则输出 `No`。
说明/提示
### 样例解释 1
在肋骨 $1,2,3,4,5$ 上分别写上 `chris`、`retro`、`tuna`、`retro`、`cod` 时,条件均满足且脊骨上写的是 `retro`。

- `retro` 的长度为 $5$。
- 每根肋骨的条件如下:
- 第 $1$ 根肋骨写的是 `chris`,长度为 $5$,其第 $3$ 个字符为 `r`,恰好等于 `retro` 的第 $1$ 个字符。
- 第 $2$ 根肋骨写的是 `retro`,长度为 $5$,其第 $2$ 个字符为 `e`,等于 `retro` 的第 $2$ 个字符。
- 第 $3$ 根肋骨写的是 `tuna`,长度为 $4$,其第 $1$ 个字符为 `t`,等于 `retro` 的第 $3$ 个字符。
- 第 $4$ 根肋骨写的是 `retro`,长度为 $5$,其第 $1$ 个字符为 `r`,等于 `retro` 的第 $4$ 个字符。
- 第 $5$ 根肋骨写的是 `cod`,长度为 $3$,其第 $2$ 个字符为 `o`,等于 `retro` 的第 $5$ 个字符。
在肋骨 $1,2,3,4,5$ 上分别写 `itchy`、`chris`、`rock`、`itchy`、`ash`,条件也满足,脊骨上写的是 `chris`。

### 约束条件
- $N$ 为整数。
- $1 \leq N \leq 10$
- $A_i$ 和 $B_i$ 为整数。($1 \leq i \leq N$)
- $1 \leq B_i \leq A_i \leq 10$ ($1 \leq i \leq N$)
- $M$ 为整数。
- $1 \leq M \leq 200\,000$
- $S_j$ 是只由小写英文字母组成的字符串。($1 \leq j \leq M$)
- $1 \leq |S_j| \leq 10$ ($1 \leq j \leq M$)
- $S_1, \cdots, S_M$ 两两不同。
由 ChatGPT 5 翻译