QOJ.ac

QOJ

時間限制: 3.0 s 記憶體限制: 256 MB 總分: 100 可 Hack ✓

#17745. K-Good部分列

统计

Busy Beaver はこの問題のために面白いストーリーを書くのが面倒だったので、形式的な問題文だけを提供します。

$M$-数列を、$1$ 以上 $M$ 以下の正の整数からなる数列と定義します。

$M$-数列が $K$-good であるとは、隣接する任意の2要素の絶対差が $K$ 以下であることを指します。例えば、$[1, 2, 3, 5, 5, 3, 2, 1]$ は $2$-good かつ $2024$-good ですが、$1$-good ではありません。長さが $0$ または $1$ の $M$-数列も $K$-good であるとみなします。

正の整数 $N, M, K, L$ と、長さ $N$ の $M$-数列 $a_1, \dots, a_N$ が与えられます。以下の条件を満たす $M$-数列 $b$ の要素数の最大値を求めてください。

  • $b$ は $a$ を接頭辞として持つ。
  • $b$ のすべての $K$-good な部分列の長さは $L$ 以下である。

数列の部分列とは、元の数列からいくつかの要素(すべてでもなしでもよい)を削除し、残りの要素の順序を変えずに得られる数列のことです。

入力

テストケースが複数存在します。最初の行にはテストケースの数 $T$ ($1 \le T \le 2 \cdot 10^5$) が含まれます。

各テストケースの最初の行には、4つの整数 $N, M, K, L$ ($0 \le N \le 2 \cdot 10^5$, $1 \le M \le 10^9$, $0 \le K \le 10^9$, $1 \le L \le 10^9$) が含まれます。

テストケースの2行目には $a_1, \dots, a_N$ ($1 \le a_i \le M$) が含まれます。$N = 0$ の場合、この行はスキップされます。

$a$ のすべての $K$-good な部分列の長さが $L$ 以下であることが保証されています。 さらに、すべてのテストケースにおける $N$ の総和は $4 \cdot 10^5$ を超えません。

出力

各テストケースについて、$b$ の要素数の最大値を1行で出力してください。問題の制約下において、最大値は常に存在し、$9 \cdot 10^{18}$ を超えないことが示せます。

小課題

  • ($5$ 点) $M \le K + 1$
  • ($5$ 点) $K = 0$
  • ($10$ 点) $N = 0$
  • ($15$ 点) $N = 1$
  • ($30$ 点) すべてのテストケースにおける $N, M, K, L$ の総和はそれぞれ $3000$ を超えない。
  • ($35$ 点) 追加の制約なし。

入出力例

入力 1

3
3 3 1 3
1 3 2
0 5 2 3
7 7 2 3
1 4 2 7 7 1 6

出力 1

5
6
7

注記

最初のサンプルテストケースでは、$M$-数列 $b$ の一例として $[1, 3, 2, 3, 1]$ が挙げられます。この数列の $1$-good な部分列(例えば $[3, 2, 3]$ や $[3, 2, 1]$ など)はすべて長さが $L = 3$ 以下です。

2番目のサンプルテストケースでは、$M$-数列 $b$ の一例として $[1, 1, 5, 4, 2, 5]$ が挙げられます。この数列の $2$-good な部分列(例えば $[5, 4, 2]$ や $[1, 1, 2]$ など)はすべて長さが $L = 3$ 以下です。

3番目のサンプルテストケースでは、可能な $b$ は $b = a$ のみであることが示せます。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.