Q - Quadratic Pieces Editorial

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 100100

問題文

長さ NN の整数列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N) が与えられます。

1LRN1 \le L \le R \le N を満たす整数 LL, RR によって定まる連続部分列 (AL,AL+1,,AR)(A_L, A_{L + 1}, \dots, A_R) が以下の条件を満たすとき、その連続部分列は 22 次関数的であると定めます。

  • ある実数 a,b,ca, b, c が存在し、LiRL \le i \le R を満たす任意の整数 iiAi=ai2+bi+cA_i = a i^2 + b i + c を満たす。

整数列 AA をいくつかの 22 次関数的な連続部分列に分割することを考えます。分割後の連続部分列の個数としてありうる値のうち最小値を出力してください。

TT 個のテストケースが与えられるので、それぞれについて答えてください。

制約

  • 入力は全て整数
  • 1T1051 \le T \le 10^5
  • 1N2×1051 \le N \le 2 \times 10^5
  • 1018Ai1018-10^{18} \le A_i \le 10^{18}
  • 11 つの入力に含まれるテストケースについて、NN の総和は 2×1052 \times 10^5 以下

入力

入力は以下の形式で標準入力から与えられる。

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 番目のテストケースに対する答えを出力せよ。


入力例 1Copy

Copy
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

出力例 1Copy

Copy
3
3
1
1

11 つ目のテストケースについて、与えられた整数列は 33 つの 22 次関数的な連続部分列 (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 つ以下の 22 次関数的な連続部分列に分割することはできないので、答えは 33 となります。

44 つ目のテストケースについて、入力値が 32 bit 整数型に収まらない場合があることに注意してください。



2025-03-29 (Sat)
02:45:58 +00:00