CF1920D.Array Repetition
普及+/提高
通过率:0%
时间限制:4.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Jayden has an array a which is initially empty. There are n operations of two types he must perform in the given order.
- Jayden appends an integer x (1≤x≤n) to the end of array a.
- Jayden appends x copies of array a to the end of array a. In other words, array a becomes [a,xa,…,a]. It is guaranteed that he has done at least one operation of the first type before this.
Jayden has q queries. For each query, you must tell him the k-th element of array a. The elements of the array are numbered from 1.
杰登有一个初始为空的数组 a。他必须按给定顺序执行 n 个操作,操作分为两类:
- 杰登将一个整数 x(1≤x≤n)追加到数组 a 的末尾;
- 杰登将 x 份当前数组 a 追加到 a 的末尾。换言之,数组 a 变为 [a,xa,…,a]。保证在执行该操作前,至少已执行过一次第一类操作。
杰登有 q 个查询。对每个查询,你需要告诉他数组 a 的第 k 个元素(数组元素编号从 1 开始)。
输入格式
Each test consists of multiple test cases. The first line contains a single integer t (1≤t≤5000) — the number of test cases. The description of the test cases follows.
The first line of each test case contains two integers n and q (1≤n,q≤105) — the number of operations and the number of queries.
The following n lines describe the operations. Each line contains two integers b and x (b∈1,2), where b denotes the type of operation. If b=1, then x (1≤x≤n) is the integer Jayden appends to the end of the array. If b=2, then x (1≤x≤109) is the number of copies Jayden appends to the end of the array.
The next line of each test case contains q integers k1,k2,…,kq (1≤ki≤min(1018,c)), which denote the queries, where c is the size of the array after finishing all n operations.
It is guaranteed that the sum of n and the sum of q over all test cases does not exceed 105.
每个测试包含多个测试用例。第一行包含一个整数 t(1≤t≤5000),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含两个整数 n 和 q(1≤n,q≤105),分别表示操作数量和查询数量。
接下来的 n 行描述操作。每行包含两个整数 b 和 x(b∈{1,2}),其中 b 表示操作类型:若 b=1,则 x(1≤x≤n)是 Jayden 追加到数组末尾的整数;若 b=2,则 x(1≤x≤109)是 Jayden 追加到数组末尾的副本数量。
每个测试用例的下一行包含 q 个整数 k1,k2,…,kq(1≤ki≤min(1018,c)),表示查询,其中 c 是执行完全部 n 个操作后数组的大小。
保证所有测试用例中 n 的总和与 q 的总和均不超过 105。
输出格式
For each test case, output q integers — answers to Jayden's queries.
对于每个测试用例,输出 q 个整数——即 Jayden 各个查询的答案。
输入输出样例
输入#1
4 5 10 1 1 1 2 2 1 1 3 2 3 1 2 3 4 5 6 14 15 16 20 10 10 1 3 1 8 2 15 1 6 1 9 1 1 2 6 1 1 2 12 2 10 32752 25178 3198 3199 2460 2461 31450 33260 9016 4996 12 5 1 6 1 11 2 392130334 1 4 2 744811750 1 10 1 5 2 209373780 2 178928984 1 3 2 658326464 2 1000000000 914576963034536490 640707385283752918 636773368365261971 584126563607944922 1000000000000000000 2 2 1 1 1 2 1 2
输出#1
1 2 1 2 3 1 2 3 1 3 9 8 1 3 1 3 6 3 8 8 11 11 11 10 11 1 2
说明/提示
In the first test case:
- After the first operation a=[1];
- After the second operation a=[1,2];
- After the third operation a=[1,2,1,2];
- After the fourth operation a=[1,2,1,2,3];
- After the fifth operation a=[1,2,1,2,3,1,2,1,2,3,1,2,1,2,3,1,2,1,2,3].
In the fourth test case, after all operations a=[1,2].
在第一个测试用例中:
- 第一次操作后,a=[1];
- 第二次操作后,a=[1,2];
- 第三次操作后,a=[1,2,1,2];
- 第四次操作后,a=[1,2,1,2,3];
- 第五次操作后,a=[1,2,1,2,3,1,2,1,2,3,1,2,1,2,3,1,2,1,2,3]。
在第四个测试用例中,所有操作完成后,a=[1,2]。
输入解题思路,AI测评打分。不知道怎么写?