trang chủ / bài tập / fixedpts

Điểm cố định

Đề bài

Mô tả

Cho một dãy số nguyên a1,a2,,an. Trong một thao tác, bạn có thể chọn một phần tử bất kỳ và xóa nó. Sau khi xóa, tất cả các phần tử bên phải bị dịch sang trái một vị trí, vì vậy không có "khoảng trống" nào trong dãy. Sau mỗi thao tác, độ dài dãy giảm đi 1 và chỉ số các phần tử được tính lại từ đầu.

Ví dụ, với a=[3,2,2,1,5], nếu chọn xóa a3=2 thì dãy mới là a=[3,2,1,5], khi đó phần tử thứ 3 mới là a3=1 và phần tử thứ 4 mới là a4=5.

Cho dãy a1,a2,,an và số k. Hãy tìm số thao tác xóa tối thiểu sao cho trong dãy kết quả b1,b2,,bmít nhất k chỉ số i thỏa bi=i (gọi là các "điểm cố định").

Dữ liệu vào

  • Dòng đầu chứa số nguyên t (1t100) — số bộ test.
  • Mỗi bộ test gồm hai dòng:
    • Dòng thứ nhất chứa hai số nguyên nk (1kn2000).
    • Dòng thứ hai chứa n số nguyên a1,a2,,an (1ain).
  • Tổng n trên tất cả bộ test không vượt quá 2000.

Dữ liệu ra

Với mỗi bộ test, in ra trên một dòng:

  • 1 nếu không có cách xóa nào thỏa mãn;
  • ngược lại, in ra số nguyên x (0xn) — số thao tác xóa tối thiểu để dãy kết quả có ít nhất k điểm cố định.

Ví dụ

Input Output Giải thích
4
7 6
1 1 2 3 4 5 6
5 2
5 1 3 2 3
5 2
5 5 5 5 4
8 4
1 2 3 3 2 2 5 5
1
2
-1
2
Test 1: xóa phần tử đầu, dãy còn [1,2,3,4,5,6] — có 6 điểm cố định. Test 2: xóa phần tử thứ 1 và 3 được [1,2,3], có 3 điểm cố định. Test 3: dãy toàn các giá trị 4 trong khi cần bi=i với i2 — không thể. Test 4: xóa hai phần tử thích hợp để được 4 điểm cố định.
2
15 6
10 7 6 7 9 7 7 10 10 7 9 12 11 12 7
8 1
1 3 6 3 7 2 4 8
-1
0
Test 1: số phần tử bằng 1 quá ít, không thể đạt 6 điểm cố định. Test 2: dãy đã sẵn b1=1, không cần xóa.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0