CFCF2201D.Binary Not Search and Queries

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

对于一个由 mm 个整数构成的序列 bb,定义集合 S(b)S(b) 为满足以下条件的三元组 (i,j,k)(i, j, k) 的集合:

  • ijki、j、k 为整数;
  • 1k<m1 \le k < m
  • 1i<jmk+11 \le i < j \le m - k + 1
  • 对于 bb 中的每个元素 vvvv[bi,bi+1,,bi+k1][b_i, b_{i+1},\ldots,b_{i+k-1}][bj,bj+1,,bj+k1][b_j, b_{j+1},\ldots,b_{j+k-1}] 中出现的次数相同。

例如,当 b=[1,2,1,2]b=[1,2,1,2] 时,三元组 (1,3,2)(1,3,2) 属于 S(b)S(b),因为 1122[b1,b2][b_1,b_2][b3,b4][b_3,b_4] 中都各出现了一次。

另外,定义两个函数,作用于正整数序列:

  • kmax(b)k_{\max}(b) 表示 S(b)S(b) 中所有元素 (i,j,k)(i, j, k)kk 的最大值;
  • f(b)f(b) 表示 S(b)S(b) 中所有 k=kmax(b)k=k_{\max}(b) 的不同三元组 (i,j,k)(i, j, k) 的数量。

特别地,当集合 S(b)S(b) 为空时,规定 kmax(b)=0k_{\max}(b)=0f(b)=0f(b)=0

现在给定一个长度为 nn 的整数序列 aa,请你回答 qq 个如下查询:

  • i  xi\;x :将 aia_i 的值改为 xx,然后计算 kmax(a)k_{\max}(a)f(a)f(a)

请注意,更新是持续的,即一次查询中的更改会影响后续的查询。

输入格式

每组测试数据包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nnqq2n2000002 \le n \le 200\,0001q1000001 \le q \le 100\,000)。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n1ain1 \le a_i \le n)。

接下来的 qq 行每行包含两个整数 iji_jxjx_j,表示第 jj 个查询(1ij,xjn1 \le i_j, x_j \le n)。

保证所有测试用例中的 nn 之和不超过 200000200\,000

保证所有测试用例中的 qq 之和不超过 100000100\,000

输出格式

对于每个测试用例,输出 qq 行。

jj 行输出第 jj 次查询后 aakmax(a)k_{\max}(a)f(a)f(a) 值。

保证在本题的约束下,这两个值均不会超过 101110^{11}

输入输出样例

  • 输入#1

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

    输出#1

    1 1
    3 1
    3 3
    2 3
    2 1
    1 2
    3 1
    0 0
    4 10
    4 4
    4 2

说明/提示

在第二个测试用例第一次查询后,a=[1,2,1,2]a=[1,2,1,2]。此时 S(a)S(a) 的元素如下:

  • (1,3,1)(1,3,1)[1,2,1,2][\color{red}{1},2,\color{blue}{1},2]
  • (2,4,1)(2,4,1)[1,2,1,2][1,\color{red}{2},1,\color{blue}{2}]
  • (1,2,2)(1,2,2)[1,2,1,2][\color{red}{1},\color{magenta}{2},\color{blue}{1},2]
  • (1,3,2)(1,3,2)[1,2,1,2][\color{red}{1},\color{red}{2},\color{blue}{1},\color{blue}{2}]
  • (2,3,2)(2,3,2)[1,2,1,2][1,\color{red}{2},\color{magenta}{1},\color{blue}{2}]

因此,kmax(a)=2k_{\max}(a)=2f(a)=3f(a)=3,因为存在三个三元组 (i,j,k)(i,j,k) 满足 k=kmax(a)=2k=k_{\max}(a)=2

在第三个测试用例第二次查询后,a=[1,3,2,4,5]a=[1,3,2,4,5],此时 S(a)S(a) 为空。

据定义,此时应输出 kmax(a)=0k_{\max}(a)=0f(a)=0f(a)=0,因为 S(a)S(a) 目前为空。

首页