KOI TST 2026 - Flying Squirrel 2

Xem PDF



Dạng bài
Ngôn ngữ cho phép
C++
Điểm: 2700 (p) Thời gian: 5.0s Bộ nhớ: 2G Input: bàn phím Output: màn hình

Đề bài

Trên mặt phẳng có một sóc bay và \(N\) cột thẳng đứng vô hạn, đánh số từ \(0\) đến \(N-1\). Chân cột \(i\)\((i,0)\). Nếu \(B[i]=0\), cột có màu đỏ; nếu \(B[i]=1\), cột có màu xanh.

Ban đầu sóc ở \((0,0)\) và cần đến \((N,H)\). Khi không ở vị trí có cột, sóc bay sang phải và giữ nguyên độ cao, mất thời gian \(0\). Tại cột \(i\), sóc phải chọn một trong các hành động:

  • Bay qua cột, không đổi độ cao và mất thời gian \(0\).
  • Nếu cột đỏ, trèo lên làm độ cao tăng \(1\), mất \(A[i]\) thời gian.
  • Nếu cột xanh, nhảy làm độ cao tăng \(1\), mất \(A[i]\) thời gian.

Khi đi qua vị trí ngang \(i+0.5\), độ cao phải nằm trong đoạn \([L[i],R[i]]\). Khi đến vị trí ngang \(N\), độ cao phải đúng bằng \(H\).

Với mỗi \(k=0,1,\ldots,H\), gọi \(T[k]\) là thời gian nhỏ nhất của một hành trình hợp lệ dùng đúng \(k\) lần nhảy trên cột xanh. Nếu không tồn tại hành trình như vậy, đặt \(T[k]=-1\).

Hãy tìm \(T[0],T[1],\ldots,T[H]\).

Yêu cầu cài đặt

C++
vector<long long> fly(
    int H,
    vector<int> A,
    vector<int> B,
    vector<int> L,
    vector<int> R
);

Các mảng có cùng độ dài \(N\). Hàm phải trả về mảng \(T\) có độ dài \(H+1\), được gọi đúng một lần, và chương trình nộp không được thực hiện thao tác vào/ra.

Ràng buộc

  • \(1\le N\le 200\,000\).
  • \(0\le H\le N\).
  • \(0\le A[i]\le 10^9\).
  • \(B[i]\in\{0,1\}\).
  • \(0\le L[i]\le R[i]\le N\).

Phân nhóm

Nhóm Điểm Ràng buộc bổ sung
1 3 \(N\le 300\).
2 4 \(A[i]=B[i]=0\) với mọi \(i\).
3 25 \(B[i]=0\) với mọi \(i\).
4 20 \(N\le 65\,000\)\(A[i]\le 5\).
5 29 \(N\le 65\,000\).
6 19 Không có ràng buộc bổ sung.

Grader mẫu

Grader mẫu đọc N H, sau đó lần lượt đọc bốn mảng \(A,B,L,R\). Grader in \(T[0],\ldots,T[H]\) trên một dòng.

Ví dụ 1

Input
4 3
8 8 2 4
1 0 1 0
1 0 2 3
1 2 2 4
Output
-1 20 14 -1
Note

Hình 1: Hành trình trong ví dụ 1 dùng một lần nhảy trên cột xanh và mất \(20\) giây.

Ví dụ 2

Input
1 1
1000000000
0
1
1
Output
1000000000 -1
Note

Hình 2: Hành trình trong ví dụ 2 dùng hai lần nhảy trên cột xanh và mất \(14\) giây.

Ví dụ 3

Input
7 3
4 7 0 3 8 4 5
0 0 0 0 0 0 0
0 0 0 1 0 1 2
5 1 2 5 5 6 3
Output
7 -1 -1 -1

Ví dụ 4

Input
20 7
3 3 4 1 3 2 0 1 4 3 4 0 0 1 0 4 4 5 5 0
1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1 1 0 0 1
0 0 1 1 2 1 2 2 1 1 0 1 1 3 2 2 1 6 4 4
3 2 3 3 6 2 2 4 3 4 4 5 3 6 6 5 7 8 8 9
Output
-1 16 11 10 9 10 12 15

Nguồn: Kỳ thi tuyển chọn đội tuyển IOI Hàn Quốc 2026 - Vòng 2, giấy phép CC BY-NC-SA 4.0.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: