P0607

[POI2009]Prz

[POI2009]Prz

你的任务是计算一个函数 F(x,y)F(x, y),其中 xx 和 yy 是两个正整数序列。FF 的定义如下:

boolean F(x, y)
    if W(x) != W(y) then
        return 0
    else if |W(x)| = |W(y)| = 1 then
        return 1
    else
        return F(p(x), p(y)) and F(s(x), s(y))

其中:

  • W(x)W(x) 表示序列 xx 中元素的集合(元素的顺序和出现次数将被无视);
  • p(x)p(x) 表示序列 xx 的最长前缀,满足 W(x)≠W(p(x))W(x)\ne W(p(x));
  • s(x)s(x) 表示序列 xx 的最长后缀,满足 W(x)≠W(s(x))W(x)\ne W(s(x));
  • ∣Z∣|Z| 表示集合 ZZ 中元素个数。

输入格式

第一行一个整数 kk,表示数据组数。

对于每组数据,第一行两个整数 n,mn, m,分别表示 xx 序列的长度与 yy 序列的长度;第二行 nn 个数表示 xix_i;第三行 mm 个数表示 yiy_i。

输出格式

输出 kk 行,对于每组数据,若 F(x,y)F(x, y) 为真则输出 11,否则输出 00。

样例输入

2
4 5
3 1 2 1
1 3 1 2 1
7 7
1 1 2 1 2 1 3
1 1 2 1 3 1 3

样例输出

0
1

数据范围

  • 1≤k≤131\le k\le 13;
  • 1≤n,m≤1000001\le n, m\le 100000;
  • 1≤xi,yi≤1001\le x_i, y_i\le 100。

来源与许可

本题为 POI 2009 试题「Prz」,题面与测试数据整理自 BZOJ 1118,译文由 MT 贡献。

样例 1

输入

2
4 5
3 1 2 1
1 3 1 2 1
7 7
1 1 2 1 2 1 3
1 1 2 1 3 1 3

输出

0
1