| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | USACO 2025 - Median Heap | 100 (p) | 4.0s | 512M |
| 2 | USACO 2025 - Reachable Pairs | 100 (p) | 4.0s | 512M |
| 3 | USACO 2025 - Photo Op | 100 (p) | 4.0s | 512M |
Lưu ý: Giới hạn thời gian của bài này là 4 giây, gấp đôi giới hạn mặc định.
Farmer John có một cây nhị phân gồm \(N\) đỉnh được đánh số từ \(1\) đến \(N\) (\(1 \leq N < 2\cdot 10^5\) và \(N\) là số lẻ). Với \(i>1\), cha của đỉnh \(i\) là \(\lfloor i/2\rfloor\). Mỗi đỉnh có một giá trị nguyên ban đầu \(a_i\) và một chi phí \(c_i\) để đổi giá trị ban đầu thành bất kỳ giá trị nguyên nào khác (\(0\le a_i,c_i\le 10^9\)).
Federal Bovine Intermediary (FBI) đã giao cho ông nhiệm vụ tìm một giá trị trung vị xấp xỉ trong cây này, và ông đã nghĩ ra một thuật toán thông minh để làm vậy.
Ông bắt đầu tại đỉnh cuối cùng \(N\) và lần lượt đi ngược lại. Tại mỗi bước của thuật toán, nếu một đỉnh không phải là trung vị của chính nó và hai con của nó, ông hoán đổi giá trị của đỉnh hiện tại với giá trị của đỉnh con mà lẽ ra là trung vị. Khi thuật toán kết thúc, giá trị tại đỉnh \(1\) (gốc) là trung vị xấp xỉ.
FBI cũng đưa cho Farmer John danh sách \(Q\) (\(1 \leq Q \leq 2\cdot 10^5\)) truy vấn độc lập, mỗi truy vấn được xác định bởi một giá trị mục tiêu \(m\) (\(0\le m\le 10^9\)). Với mỗi truy vấn, trước tiên FJ sẽ thay đổi một số giá trị ban đầu của các đỉnh, rồi thực thi thuật toán xấp xỉ trung vị. Với mỗi truy vấn, hãy xác định tổng chi phí nhỏ nhất có thể để FJ khiến đầu ra của thuật toán bằng \(m\).
Dòng đầu tiên chứa \(N\).
\(N\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(a_i\) và \(c_i\).
Dòng tiếp theo chứa \(Q\).
\(Q\) dòng tiếp theo, mỗi dòng chứa một giá trị mục tiêu \(m\).
In \(Q\) dòng, mỗi dòng là tổng chi phí nhỏ nhất có thể ứng với giá trị mục tiêu \(m\) tương ứng.
Ví dụ 1
5
10 10000
30 1000
20 100
50 10
40 1
11
55
50
45
40
35
30
25
20
15
10
5
111
101
101
100
100
100
100
0
11
11
111
Để khiến trung vị xấp xỉ bằng \(40\), FJ có thể đổi giá trị tại đỉnh \(3\) thành \(60\). Việc này tốn \(c_3=100\).
Để khiến trung vị xấp xỉ bằng \(45\), FJ có thể đổi giá trị tại đỉnh \(3\) thành \(60\) và giá trị tại đỉnh \(5\) thành \(45\). Việc này tốn \(c_3+c_5=100+1=101\).
USACO 2025 January Contest, Gold — Median Heap
Đề bài: https://usaco.org/index.php?page=viewproblem2&cpid=1473
Tác giả đề: Suhas Nagar và Benjamin Qi
Xét một đồ thị vô hướng gồm \(N\) đỉnh được đánh số \(1\dots N\) và \(M\) cạnh (\(1\le N\le 2\cdot 10^5, 0\le M\le 4\cdot 10^5\)). Bạn được cho một chuỗi nhị phân \(s_1s_2\dots s_N\). Tại thời điểm \(t\) với mỗi \(t\in [1,N]\):
Lưu ý rằng trong cả hai trường hợp, khi một đỉnh bị xóa khỏi đồ thị, tất cả các cạnh liên thuộc với nó cũng bị xóa.
Hãy đếm số cặp đỉnh có thể đi tới nhau qua một dãy cạnh nào đó ngay trước mỗi thời điểm \(1\ldots N\).
Dòng đầu tiên chứa \(N\) và \(M\).
Dòng thứ hai chứa chuỗi bit \(s\) có độ dài \(N\).
\(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên biểu diễn một cạnh của đồ thị.
In \(N\) dòng, là số cặp trước mỗi thời điểm.
Ví dụ 1
3 2
111
1 2
1 3
3
1
0
Trước khi xóa bất kỳ đỉnh nào, mọi cặp đỉnh đều có thể đi tới nhau. Sau khi đỉnh \(1\) bị xóa, một cạnh được thêm giữa \(2\) và \(3\), nên chúng vẫn có thể đi tới nhau.
Ví dụ 2
3 2
000
1 2
1 3
3
0
0
Trước khi xóa bất kỳ đỉnh nào, mọi cặp đỉnh đều có thể đi tới nhau. Sau khi đỉnh \(1\) bị xóa, \(2\) và \(3\) không còn có thể đi tới nhau.
Ví dụ 3
7 8
1101101
6 2
1 2
2 3
6 3
1 3
1 7
4 5
2 7
11
7
4
2
1
1
0
USACO 2025 January Contest, Gold — Reachable Pairs
Đề bài: https://usaco.org/index.php?page=viewproblem2&cpid=1474
Tác giả đề: Benjamin Qi
Trang trại của Farmer John tràn đầy thảm thực vật xanh tốt và mọi con bò đều muốn chụp một bức ảnh về vẻ đẹp tự nhiên của nó. Không may, Bessie vẫn có nơi cần đến, nhưng cô không muốn làm gián đoạn bất kỳ buổi chụp ảnh nào.
Bessie hiện đang đứng tại \((X,0)\) trên mặt phẳng \(XY\) và muốn đi đến \((0,Y)\) (\(1\le X,Y\le 10^6\)). Không may, \(N\) (\(1 \leq N \leq 3 \cdot 10^5\)) con bò khác đã quyết định tạo dáng trên trục \(X\). Cụ thể hơn, bò \(i\) sẽ đứng tại \((x_i,0)\) với một nhiếp ảnh gia ở \((0,y_i)\) sẵn sàng chụp ảnh cho nó, trong đó \((1 \leq x_i,y_i \leq 10^6)\). Chúng sẽ bắt đầu tạo dáng ngay trước thời điểm \(s_i\) (\(1 \leq s_i < T\)) và tiếp tục tạo dáng trong thời gian rất dài (chúng phải chụp được bức ảnh thật hoàn hảo). Ở đây, \(1\le T\le N+1\).
Bessie biết lịch chụp ảnh của mọi con bò, và cô sẽ đi quãng đường Euclid ngắn nhất để đến đích mà không cắt qua đường ngắm từ bất kỳ nhiếp ảnh gia nào đến con bò tương ứng (đường đi của cô gồm một hoặc nhiều đoạn thẳng).
Nếu Bessie khởi hành tại thời điểm \(t\), cô sẽ tránh đường ngắm của tất cả các cặp nhiếp ảnh gia/bò bắt đầu tạo dáng tại thời điểm \(s_i \le t\), và gọi khoảng cách đến đích cuối cùng của cô là \(d_t\). Hãy xác định các giá trị \(\lfloor d_t\rfloor\) với mỗi số nguyên \(t\) từ \(0\) đến \(T-1\), tính cả hai đầu.
Dòng đầu tiên chứa \(N\) và \(T\), lần lượt biểu diễn số con bò tạo dáng trên trục \(x\) và khoảng thời gian Bessie có thể khởi hành.
Dòng thứ hai chứa \(X\) và \(Y\), lần lượt biểu diễn tọa độ \(X\) ban đầu của Bessie và tọa độ \(Y\) đích của cô.
\(N\) dòng tiếp theo chứa \(s_i\) \(x_i\) và \(y_i\). Đảm bảo mọi \(x_i\) đôi một khác nhau và khác \(X\), mọi \(y_i\) đôi một khác nhau và khác \(Y\). Mọi \(s_i\) được cho theo thứ tự không giảm, với \(s_i \leq s_{i+1}\).
In \(T\) dòng, trong đó dòng thứ \(t\) (đánh số từ \(0\)) chứa \(\lfloor d_t\rfloor\).
Ví dụ 1
4 5
6 7
1 7 5
2 4 4
3 1 6
4 2 9
9
9
9
10
12
Ví dụ 2
2 3
10 7
1 2 10
1 9 1
12
16
16
Với \(t=0\), đáp án là \(\lfloor \sqrt{149} \rfloor=12\).
Với \(t=1\), đáp án là \(\lfloor 14+\sqrt 5\rfloor=16\).
Ví dụ 3
5 6
8 9
1 3 5
1 4 1
3 10 7
4 9 2
5 6 6
12
12
12
12
14
14
Với \(t=5\), đáp án là \(\lfloor 1+\sqrt{9^2+7^2}+2\rfloor=14\). Đường đi: \((8,0)\to (9,0)\to (0,7)\to (0,9)\).
USACO 2025 January Contest, Gold — Photo Op
Đề bài: https://usaco.org/index.php?page=viewproblem2&cpid=1475
Tác giả đề: Suhas Nagar