#L4979. 「POI 2024/2025 R2」Drzewo genealogiczne

「POI 2024/2025 R2」Drzewo genealogiczne

题目描述
题目译自 XXII Olimpiada Informatyczna — II etap Trzy Wieże

Bajtazar 最近迷上了追溯自己姓氏的起源。在他的家族中,有个独特的传统:父母姓氏为 uuww 的孩子,姓氏为 u wu~ww uw~u,由父母自由选择。

Bajtazar 翻遍旧箱子,找到 nn 代前的祖先记录,称这些为原始祖先。令人惊讶的是,当时的姓氏仅为单个小写英文字母。nn 代前有 2n2^n 位祖先,因为每人有两个父母、四个祖父母、八个曾祖父母,以此类推。这些祖先编号为 112n2^n,其中 1122 配对,3344 配对,每对生一个孩子,孩子编号为 112n12^{n-1}(如 1122 的孩子为 11)。此过程逐代重复,直到 Bajtazar 这一代,仅剩他一人。

Bajtazar 的姓氏长度为 2n2^n,但他不清楚其形成过程,因为祖先可自由选择孩子姓氏的字母顺序。他开始怀疑档案记录可能有误,请你帮忙验证。

情况是动态变化的,Bajtazar 会修改档案或自己的姓氏。你的任务是判断初始状态及每次 qq 次事件后,他的姓氏是否可能由档案中的祖先姓氏按规则生成。事件 ii 为以下两种之一:

  • Bajtazar 将自己姓氏的第 kik_i 位字母改为 bib_i
  • 原始祖先 kik_i 的姓氏改为 bib_ibib_i 为小写字母)。

输入格式
第一行包含两个整数 nn, qq (1n201 \leq n \leq 20, 0q10000000 \leq q \leq 1000000),表示代数和事件数。

第二行包含 2n2^n 个小写英文字母,描述 Bajtazar 的姓氏。

第三行包含 2n2^n 个小写英文字母,第 ii 个字母表示原始祖先 ii 的姓氏。

接下来的 qq 行描述事件,第 ii 行包含两个整数 tit_i, kik_i 和一个小写字母 bib_i (1ti21 \leq t_i \leq 2, 1ki2n1 \leq k_i \leq 2^n)。若 ti=1t_i=1,表示修改 Bajtazar 姓氏第 kik_i 位为 bib_i;若 ti=2t_i=2,表示修改祖先 kik_i 的姓氏为 bib_i

输出格式
输出 q+1q+1 行。第一行表示初始状态的答案,接下来的 qq 行按事件顺序表示每次事件后的答案。若 Bajtazar 的当前姓氏可由档案姓氏按规则生成输出 TAK,否则输出 NIE

样例
输入复制

2 4
abcd
cadb
1 2 c
2 4 c
1 1 d
1 4 a

输出复制

NIE
NIE
TAK
NIE
TAK

初始及每次事件后的情况如下:

  • Bajtazar 姓氏为 abcd,祖先姓氏为 c, a, d, b。不可生成,答案为 NIE
  • Bajtazar 姓氏为 accd,祖先姓氏不变。不可生成,答案为 NIE
  • Bajtazar 姓氏为 accd,祖先姓氏为 c, a, d, c。可生成,父母姓氏为 accd,答案为 TAK
  • Bajtazar 姓氏为 dccd,祖先姓氏不变。不可生成,答案为 NIE
  • Bajtazar 姓氏为 dcca,祖先姓氏不变。可生成,父母姓氏为 cadc,答案为 TAK

附加样例

  • n=3n=3, q=10q=10,测试仅含字母 ab
  • n=10n=10, q=1000q=1000,初始 Bajtazar 姓氏为祖先姓氏的镜像,保持每两事件后此性质。
  • n=20n=20, q=0q=0,Bajtazar 姓氏全为 a,祖先姓氏全为 b,答案为 NIE
  • n=18n=18, q=200000q=200000,初始两字符串全为 a,每两事件将对应位置改为 b
  • n=20n=20, q=1000000q=1000000,Bajtazar 姓氏由 xyzw 多次重复,祖先姓氏由 yxzw 重复,事件将前者改为 zyxw 重复,后者改为 yzxw 重复,每四事件答案为 TAK,其余为 NIE

数据范围与提示
详细子任务附加限制及分值如下表所示。

子任务编号 附加限制 分值
1 n4n \leq 4, q=0q=0 3
2 n10n \leq 10, q=0q=0 11
3 q=0q=0 13
4 n18n \leq 18, q200000q \leq 200000 44
5 无附加限制 29