#C1045. [CSP-J 2024T4] 接龙

    ID: 4519 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>模拟数据结构CSP-J入门级2024年DP结构体连续性问题分支结构下标计数

[CSP-J 2024T4] 接龙

题目描述

nn 个人,每个人都有一个整数序列词库。游戏进行若干轮,规则如下:

  • 每一轮需要选择一个人,且不能与上一轮选择的人相同。
  • 被选中的人需要提供其词库中的一个长度在 22kk 之间的连续子序列(子数组)。
  • 第一轮提供的子序列必须以数字 11 开头
  • 之后的每一轮,提供的子序列必须以上一轮子序列的最后一个元素开头

现在有 qq 个任务,每个任务给出两个整数 rrcc,请你判断是否能够恰好进行 rr,并且最后一轮提供的子序列的最后一个元素恰好为 cc。如果可以,输出 1;否则输出 0

输入格式

第一行包含一个正整数 TT,表示数据组数。

对于每组数据:

  • 第一行包含三个正整数 n,k,qn, k, q,分别表示人数、子序列长度上限和任务个数。
  • 接下来 nn 行,每行先是一个正整数 lil_i,表示第 ii 个人的词库长度,然后是 lil_i 个整数,表示该词库的序列。
  • 接下来 qq 行,每行包含两个正整数 rj,cjr_j, c_j,表示一个任务:是否能够恰好 rjr_j 轮且最后元素为 cjc_j

输出格式

对于每个任务,输出一行一个整数:可以则输出 1,否则输出 0

样例

1
3 3 7
5 1 2 3 4 1
3 1 2 5
3 5 1 6
1 2
1 4
2 4
3 4
6 6
1 1
7 7
1
0
1
0
1
0
0

样例解释

共有 11 组数据,33 个人,k=3k=377 个任务。

  • 任务 1:进行 11 轮,结尾为 22。可以选第 11 个人的子序列 [1,2][1,2](长度 22,在 [2,3][2,3] 内,且以 11 开头),恰好 11 轮,结尾为 22,输出 1
  • 任务 2:11 轮结尾为 44。不存在以 11 开头且以 44 结尾的长度在 [2,3][2,3] 内的子序列,输出 0
  • 任务 3:22 轮结尾为 44。可以第一轮选 [1,2][1,2],第二轮选另一个人的以 22 开头、以 44 结尾的子序列,满足条件,输出 1
  • 任务 4:33 轮结尾为 44。无法构造满足条件的方案,输出 0
  • 任务 5:66 轮结尾为 66。可以构造出长度为 66 的接龙序列,输出 1
  • 任务 6:11 轮结尾为 11。不允许长度为 11 的子序列(要求长度至少 22),输出 0
  • 任务 7:77 轮结尾为 77。不可能,输出 0

数据范围与提示

  • 1T51 \le T \le 5
  • 1n,q1051 \le n, q \le 10^5
  • 2k2×1052 \le k \le 2 \times 10^5
  • 单组数据中所有 lil_i 的总和不超过 2×1052 \times 10^5
  • 1rj1001 \le r_j \le 100
  • 序列中的元素均为正整数,且大小不超过 10510^5