CF2004F.Make a Palindrome
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个由 n 个整数构成的数组 a。
定义函数 f(b) 表示将数组 b 变为回文数组所需的最少操作次数。你可以进行以下两种操作:
- 选择相邻的两个元素 bi 和 bi+1,将它们移除,并用一个元素 (bi+bi+1) 替换;
- 或者选择一个元素 bi>1,将其移除,并用两个正整数 x 和 y(x>0 且 y>0,且 x+y=bi)替换。
例如,对于数组 b=[2,1,3],你可以通过一次操作得到以下数组之一:[1,1,1,3],[2,1,1,2],[3,3],[2,4],或 [2,1,2,1]。
计算 (1≤l≤r≤n∑f(a[l..r])),其中 a[l..r] 表示数组 a 从下标 l 到下标 r 的子数组(包含两端)。换句话说,求数组 a 所有子数组的函数 f 值之和。
输入格式
第一行包含一个整数 t(1≤t≤1000),表示测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤2000)。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤105)。
输入的额外限制:所有测试用例中 n 的总和不超过 2000。
输出格式
对于每个测试用例,输出一个整数,表示数组 a 所有子数组的函数 f 值之和。
输入输出样例
输入#1
4 3 2 1 3 4 1 1 1 1 5 4 2 3 1 5 4 1 2 1 2
输出#1
3 0 14 5
说明/提示
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?