#P14608. [NWRRC 2025] Infection Investigation

[NWRRC 2025] Infection Investigation

题目描述

Isaac is a biologist who specializes in diagnosing viral diseases. The virus modifies the host genome (a sequence of genes) by altering it to suit its own needs. Isaac is writing a paper investigating viral infection in genomes. He has some samples and asks you to help analyze them.

For simplicity, we will assume that the viral genome consists of genes 1,2,,n1, 2, \ldots, n in this order. The host genome is a permutation of genes 1,2,n1, 2, \ldots n: it consists of genes a1,a2,,ana_1, a_2, \ldots, a_n in this order.

Consider a genomic segment [l;r][l; r] consisting of genes al,al+1,,ara_l, a_{l+1}, \ldots, a_r. The infection level of this segment is measured as the length of the longest subsequence of genes shared with the viral genome. Formally, the infection level is the maximum kk such that there exist li1<i2<<ikrl \le i_1 < i_2 < \dots < i_k \le r for which the inequalities ai1<ai2<<aika_{i_1} < a_{i_2} < \dots < a_{i_{k}} hold.

To analyze the genome, Isaac needs to estimate the infection levels of qq genomic segments. To secure the funding, Isaac only needs approximate results: an error factor of up to 1.51.5 is allowed.

输入格式

Each test contains multiple test cases. The first line contains the number of test cases tt (1t1041 \le t \le 10^4). The description of the test cases follows.

The first line of each test case contains two integers nn and qq, denoting the host genome length and the number of genomic segments Isaac is interested in (1n,q21051 \le n, q \le 2 \cdot 10^5).

The second line contains nn distinct integers a1,a2,,ana_1, a_2, \ldots, a_n, describing the host genome (1ain1 \le a_i \le n).

Each of the following qq lines contains two integers ll and rr, denoting the boundaries of a genomic segment for which the infection level should be estimated (1lrn1 \le l \le r \le n).

It is guaranteed that the sum of nn over all test cases does not exceed 21052\cdot 10^5, and the sum of qq over all test cases does not exceed 21052 \cdot 10^5.

输出格式

For each test case, print qq positive integers, denoting the infection levels of the corresponding genomic segments.

For each genomic segment, let your answer be xx and let the true answer be yy. Your answer will be considered correct if it differs from the true answer by a factor of at most 1.51.5, that is, if max(xy,yx)1.5\max\left(\frac{x}{y}, \frac{y}{x}\right) \le 1.5.

2
10 4
3 5 8 4 6 7 1 10 2 9
1 7
7 10
1 10
3 4
8 2
1 2 3 4 5 6 7 8
1 8
1 8
4
3
5
1
6
12