AT_utpc2024_q.Quadratic Pieces

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的整数序列 A=(A1,A2,…,AN)A = (A_1, A_2, \dots, A_N)。

我们称,对于所有满足 1≤L≤R≤N1 \le L \le R \le N 的整数 LL、RR,由它们确定的连续子序列 (AL,AL+1,…,AR)(A_L, A_{L + 1}, \dots, A_R),如果满足下述条件,则称该连续子序列是二次函数的:

  • 存在某些实数 a,b,ca, b, c,使得对于所有满足 L≤i≤RL \le i \le R 的整数 ii,都有 Ai=ai2+bi+cA_i = a i^2 + b i + c。

请你将整数序列 AA 分割成若干连续的、二次函数的子序列。输出所有可能的分割方案中,最少可以分成多少个这样的子序列。

有 TT 组测试数据,请分别输出每组的答案。

输入格式

输入按以下格式从标准输入读入。

TT case1\mathrm{case}_1 case2\mathrm{case}_2 ⋮\vdots caseT\mathrm{case}_T

每组测试数据格式如下:

NN A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出 TT 行。第 ii 行输出第 ii 组测试数据对应的答案。

输入输出样例

  • 输入#1

    4
    12
    -16 -9 -4 -1 0 0 0 0 1 4 9 16
    8
    2 0 2 5 0 3 0 8
    1
    0
    5
    1000000000000000000 -500000000000000000 -1000000000000000000 -500000000000000000 1000000000000000000

    输出#1

    3
    3
    1
    1

说明/提示

样例解释 1

以第 11 组测试数据为例,给定的序列可以划分为 33 个连续的、二次函数的子序列 (−16,−9,−4,−1), (0,0,0), (0,1,4,9,16)(-16, -9, -4, -1),\, (0, 0, 0),\, (0, 1, 4, 9, 16)。事实上,对于每个子序列,分别有 (a,b,c)=(−1,10,−25), (0,0,0), (1,−16,64)(a, b, c) = (-1, 10, -25),\, (0, 0, 0),\, (1, -16, 64) 满足条件。无法将其划分为不超过 22 个连续的、二次函数的子序列,所以答案是 33。

请注意,第 44 组测试数据的输入可能超出 32 位整数的范围。

数据范围

  • 所有输入均为整数。
  • 1≤T≤1051 \le T \le 10^5
  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • −1018≤Ai≤1018-10^{18} \le A_i \le 10^{18}
  • 对于单个输入内所有测试数据,NN 的总和不超过 2×1052 \times 10^5。

由 ChatGPT 5 翻译

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

首页