测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A2469. SLW-Words

编程题 提高+/省选-
知识点

题目描述

函数 $h$ 作用于由数字 $0$ 和 $1$ 组成的字符串,其通过将每一个数字 $0$ 替换为 $1$,将每一个数字 $1$ 替换为字符串 $10$ 来独立且同时地变换字符串 $w$。

例如:

$$h(``1001")=``101110"$$
$$h(``\ ")=``\ "$$

其中例二即把空字符串赋值给空字符串。

注意, $h$ 是一个一对一的函数。

我们用 $h^k$ 表示函数 $h$ 使用 $k$ 次。

特别的, $h^0(w)=w$。

我们对 $k = 0, 1, 2, ...$ 的 $h^k(``0")$ 形式的字符串感兴趣,这个序列为:

$$ ``0", ``1", ``10", ``101", ``10110", ``10110101", \ldots $$

如果字符串 $x$ 在 $y$ 中以一个连续的(即一个块)子串出现,我们就称 $x$ 为字符串 $y$ 的子串。给出整数 $k_1, k_2, k_3, ..., k_n $ 的序列。你的任务是检查是否有 $m$ ,使 $h^{k_1}(``0") \cdot h^{k_2}(``0") \cdot \ldots \cdot h^{k_n}(``0") $ 形式的字符串是 $h^m(``0")$ 的子串。

输入格式

输入的第一行包含一个整数 $t$ 表示样例数, $1 \leq t \leq 13$。每个样例输入两行,一行 $n$ , $1 \leq n \leq 100000$ ,另一行为 $n$ 个非负整数 $k_1, k_2, k_3, ..., k_n $,用单个空格分隔。

输出格式

您的程序应该输出 $t$ 行,每个测试输出一行。如果存在 $m$ 使 $h^{k_1}(``0") \cdot h^{k_2}(``0") \cdot \ldots \cdot h^{k_n}(``0") $ 是 $h^m(``0")$ 的子串,就输出 TAK(波兰语中的 _yes_ ),如果不存在 $m$,则输出 NIE(波兰语中的 _no_ )。

输入输出样例

输入 #1
2
2
1 2
2
2 0
输出 #1
TAK
NIE
上一题 去做题 下一题