| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | USACO 2014 - Vacation Planning (gold) | 100 (p) | 4.0s | 512M |
| 2 | USACO 2014 - Optimal Milking | 100 (p) | 4.0s | 512M |
| 3 | USACO 2014 - The Bessie Shuffle (gold) | 100 (p) | 4.0s | 512M |
Air Bovinia khai thác các chuyến bay kết nối \(N\) trang trại nơi các cô bò sinh sống (\(1 \le N \le 20\,000\)). Giống như mọi hãng hàng không khác, \(K\) trang trại trong số đó được chỉ định làm trung tâm (\(1 \le K \le 200\), \(K \le N\)).
Hiện tại, Air Bovinia cung cấp \(M\) chuyến bay một chiều (\(1 \le M \le 20\,000\)), trong đó chuyến bay thứ \(i\) đi từ trang trại \(u_i\) đến trang trại \(v_i\) và có giá \(d_i\) đô la (\(1 \le d_i \le 10\,000\)). Như mọi hãng hàng không hợp lý khác, đối với mỗi chuyến bay, ít nhất một trong hai trang trại \(u_i\) và \(v_i\) là một trung tâm. Giữa hai trang trại có nhiều nhất một chuyến bay thẳng theo mỗi hướng, và không chuyến bay nào bắt đầu rồi kết thúc tại cùng một trang trại.
Bessie phụ trách dịch vụ bán vé của Air Bovinia. Không may, trong lúc cô đi nhai cỏ khô ngon lành suốt vài giờ, hãng đã nhận được \(Q\) yêu cầu di chuyển một chiều cho kỳ nghỉ của các cô bò (\(1 \le Q \le 50\,000\)), trong đó yêu cầu thứ \(i\) là đi từ trang trại \(a_i\) đến trang trại \(b_i\).
Vì Bessie đang quá tải với việc xử lý những tấm vé này, hãy giúp cô xác định xem từng yêu cầu có thể được đáp ứng hay không và chi phí nhỏ nhất nếu có thể.
Để giảm kích thước dữ liệu ra, bạn chỉ cần in tổng số yêu cầu vé có thể đáp ứng và tổng các chi phí nhỏ nhất của chúng. Lưu ý rằng tổng chi phí này có thể không vừa trong một số nguyên \(32\) bit.
Ví dụ 1
3 3 1 2
1 2 10
2 3 10
2 1 5
2
1 3
3 1
1
20
Đối với yêu cầu đầu tiên, lộ trình khả thi duy nhất là \(1 \to 2 \to 3\), có chi phí \(20\). Không có chuyến bay nào rời trang trại \(3\), vì vậy những cô bò tội nghiệp bị mắc kẹt ở đó.
USACO 2013 December Contest, Gold — Problem 1: Vacation Planning (gold)
Tác giả: Kalki Seksaria và Richard Peng, 2013.
Farmer John vừa mua một chuồng bò mới có \(N\) máy vắt sữa (\(1 \le N \le 40\,000\)), được đánh số thuận tiện từ \(1\) đến \(N\) và xếp thành một hàng.
Máy vắt sữa \(i\) có thể lấy được \(M(i)\) đơn vị sữa mỗi ngày (\(1 \le M(i) \le 100\,000\)). Không may, các máy được lắp quá sát nhau nên nếu máy \(i\) được sử dụng trong một ngày nào đó thì hai máy kề nó không thể được sử dụng trong ngày ấy; dĩ nhiên, các máy ở hai đầu chỉ có một máy kề. Farmer John có thể chọn các tập máy khác nhau để vận hành vào những ngày khác nhau.
Farmer John muốn tính lượng sữa lớn nhất có thể lấy được trong \(D\) ngày (\(1 \le D \le 50\,000\)). Vào đầu mỗi ngày, ông có đủ thời gian để bảo trì một máy vắt sữa \(i\) được chọn, qua đó thay đổi sản lượng sữa hằng ngày \(M(i)\) của máy kể từ ngày đó trở đi. Với danh sách các thay đổi hằng ngày này, hãy cho Farmer John biết ông có thể sản xuất bao nhiêu sữa trong \(D\) ngày. Lưu ý rằng kết quả có thể không vừa trong một số nguyên \(32\) bit.
In ra tổng lượng sữa lớn nhất Farmer John có thể sản xuất trong \(D\) ngày.
Ví dụ 1
5 3
1
2
3
4
5
5 2
2 7
1 10
32
Có \(5\) máy với sản lượng ban đầu lần lượt là \(1,2,3,4,5\). Vào ngày \(1\), máy \(5\) được cập nhật để cho \(2\) đơn vị sữa, và các cập nhật còn lại cũng được mô tả tương tự.
Trong ngày thứ nhất, lượng sữa tối ưu là \(2+4=6\), cũng có thể đạt được bằng \(1+3+2\). Trong ngày thứ hai, lượng sữa tối ưu là \(7+4=11\). Trong ngày thứ ba, lượng sữa tối ưu là \(10+3+2=15\).
USACO 2013 December Contest, Gold — Problem 2: Optimal Milking
Tác giả: Brian Dean, 2013.
Bessie đang luyện các màn ảo thuật với bài. Cô đã thành thạo phép xáo bài Bessie: một phép xáo trên \(M\) lá bài (\(2 \le M \le 100\,000\)), sắp xếp lại sao cho lá bài thứ \(i\) tính từ trên xuống chuyển đến vị trí thứ \(P[i]\) tính từ trên xuống.
Giờ đây, Bessie đang luyện xáo những bộ bài lớn hơn. Cô có một bộ gồm \(N\) lá bài (\(M \le N \le 1\,000\,000\,000\)), được đánh số thuận tiện từ \(1\) đến \(N\). Cô xáo bộ bài này bằng cách lấy \(M\) lá đầu tiên, thực hiện phép xáo Bessie trên chúng, rồi đặt các lá đã xáo trở lại trên cùng bộ bài. Sau đó, cô lấy lá trên cùng ra và đặt úp xuống. Cô lặp lại quá trình này, lần lượt đặt các lá trên cùng chồng lên nhau, cho đến khi không còn lá nào. Khi còn ít hơn \(M\) lá, Bessie không thực hiện phép xáo Bessie nữa nhưng vẫn tiếp tục đặt lá trên cùng lên trên các lá còn lại.
Bessie biết rằng ban đầu bộ bài được sắp theo thứ tự, với lá \(1\) ở trên cùng, tiếp theo là lá \(2\), và lá \(N\) ở dưới cùng. Cho mô tả của phép xáo Bessie, hãy giúp Bessie xác định những lá bài nằm tại \(Q\) vị trí được chỉ định khác nhau (\(1 \le Q \le N\), \(Q \le 5\,000\)) trong bộ bài cuối cùng.
Với mỗi truy vấn \(i\), in ra trên dòng thứ \(i\) một số nguyên là nhãn của lá bài tại vị trí \(q_i\) tính từ trên xuống.
Ví dụ 1
5 3 5
3
1
2
1
2
3
4
5
4
5
3
1
2
Bessie có một bộ \(5\) lá ban đầu theo thứ tự \([1,2,3,4,5]\). Phép xáo của cô tác động lên \(3\) lá và có hiệu ứng chuyển lá trên cùng xuống cuối nhóm. Có \(5\) truy vấn, lần lượt hỏi mọi vị trí trong bộ bài.
Quá trình xáo diễn ra như sau:
Quá trình này tạo ra thứ tự cuối cùng \([4,5,3,1,2]\).
USACO 2013 December Contest, Gold — Problem 3: The Bessie Shuffle (gold)
Tác giả: Mark Gordon, 2013.