CF2045I.Microwavable Subsequence

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个整数数组 [A1,A2,…,AN][A_1, A_2, \dots, A_N],数组长度为 NN。

从数组中移除零个或多个元素,并保持剩余元素的顺序不变,就可以得到一个子序列。例如,[2,1,2][2, 1, 2]、[3,3][3, 3]、[1][1] 和 [3,2,1,3,2][3, 2, 1, 3, 2] 都是数组 [3,2,1,3,2][3, 2, 1, 3, 2] 的子序列,而 [1,2,3][1, 2, 3] 不是。

如果某个子序列最多只包含两种不同的数,并且相邻元素不相同,则称为“微波炉”子序列。例如,[2,1,2][2, 1, 2]、[3,2,3,2][3, 2, 3, 2] 以及 [1][1] 是微波炉子序列,而 [3,3][3, 3] 和 [3,2,1,3,2][3, 2, 1, 3, 2] 则不是。

函数 f(x,y)f(x, y) 表示数组 AA 中元素仅为 xx 或 yy 的最长微波炉子序列的长度。请计算所有满足 1≤x<y≤M1 \leq x < y \leq M 的 f(x,y)f(x, y) 之和。

输入格式

第一行输入两个整数 NN 和 MM,满足 1≤N,M≤300,0001 \leq N, M \leq 300,000。

第二行包含 NN 个整数 AiA_i,其中 1≤Ai≤M1 \leq A_i \leq M。

输出格式

输出一个整数,即所有满足 1≤x<y≤M1 \leq x < y \leq M 的 f(x,y)f(x, y) 的总和。

输入输出样例

  • 输入#1

    5 4
    3 2 1 3 2

    输出#1

    13
  • 输入#2

    3 3
    1 1 1

    输出#2

    2

说明/提示

样例解释 1

f(1,2)f(1, 2) 的值为 33,可以从序列中去掉 A1A_1 和 A4A_4,得到子序列 [2,1,2][2, 1, 2]。f(1,3)f(1, 3) 的值为 33,通过去除 A2A_2 和 A5A_5,得到子序列 [3,1,3][3, 1, 3]。f(2,3)f(2, 3) 的值为 44,从序列中去除 A3A_3,得到子序列 [3,2,3,2][3, 2, 3, 2]。而 f(1,4)f(1, 4)、f(2,4)f(2, 4) 和 f(3,4)f(3, 4) 的值均为 11。

样例解释 2

f(1,2)f(1, 2) 和 f(1,3)f(1, 3) 的值均为 11,而 f(2,3)f(2, 3) 的值是 00。

本翻译由 AI 自动生成

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

首页