AT_agc063_b.[AGC063B] Insert 1, 2, 3, ...

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

称一个由正整数组成的数列 a=(a1,…,an)a = (a_1, \ldots, a_n) 可生成,是指可以从空序列出发,反复进行如下操作得到 aa。

  • 操作:选择一个正整数 kk,并将 (1,2,…,k−1,k)(1, 2, \ldots, k-1, k) 插入到当前序列的任意位置。更形式化地说,对于当前序列 a=(a1,…,am)a = (a_1, \ldots, a_m),选择一个整数 ii 满足 0≤i≤m0 \leq i \leq m 以及一个正整数 kk,将 aa 替换为 (a1,…,ai,1,2,…,k−1,k,ai+1,…,am)(a_1, \ldots, a_i, 1, 2, \ldots, k-1, k, a_{i+1}, \ldots, a_m)。

例如,a=(1,2,1,1,2,1,3,4,2,3)a = (1,2,1,1,2,1,3,4,2,3) 是可生成的。以下是其中一种生成过程:

()→(1,2)→(1,2,1,2,3)→(1,2,1,1,2,3,4,2,3)→(1,2,1,1,2,1,3,4,2,3)() \to (\mathbf{1,2}) \to (1,2,\mathbf{1,2,3}) \to (1,2,1,\mathbf{1,2,3,4},2,3) \to (1,2,1,1,2,\mathbf{1},3,4,2,3)


给定一个由正整数组成的数列 A=(A1,…,AN)A = (A_1, \ldots, A_N)。请你计算满足下列条件的整数对 (L,R)(L, R) 的个数:

  • 1≤L≤R≤N1 \leq L \leq R \leq N,且连续子序列 (AL,…,AR)(A_L, \ldots, A_R) 是可生成的。

输入格式

输入以如下格式从标准输入给出。

NN A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出满足条件的整数对 (L,R)(L, R) 的个数。

输入输出样例

  • 输入#1

    6
    1 2 1 2 1 3

    输出#1

    11
  • 输入#2

    5
    1 1 1 1 1

    输出#2

    15
  • 输入#3

    7
    1 2 1 2 1 3 4

    输出#3

    13

说明/提示

限制

  • 1≤N≤5×1051 \leq N \leq 5 \times 10^5
  • 1≤Ai≤N1 \leq A_i \leq N

样例解释 1

共有以下 1111 个:

  • (1,1), (1,2), (1,3), (1,4), (1,5), (1,6), (3,3), (3,4), (3,5), (3,6), (5,5)(1,1),\ (1,2),\ (1,3),\ (1,4),\ (1,5),\ (1,6),\ (3,3),\ (3,4),\ (3,5),\ (3,6),\ (5,5)

样例解释 2

所有连续子序列都是可生成的。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页