| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | USACO 2024 January Contest, Silver, Cowmpetency | 100 (p) | 2.0s | 256M |
| 2 | USACO 2024 January Contest, Silver, Potion Farming | 100 (p) | 2.0s | 256M |
| 3 | USACO 2024 - Cowlendar | 100 (p) | 4.0s | 512M |
Nông dân John đang tuyển thêm bò đầu đàn cho đàn bò của mình. Sau khi phỏng vấn, anh ta chấm điểm cho những con bò ứng viên theo thang điểm gọi là "cowmpetency", hay còn gọi là "độ bảnh bò" cho mỗi con bò. Số điểm này dao động từ \(1\) đến \(C\) (\(1 \leq C \leq 10^9\)), với \(C\) là độ bảnh mà John mong muốn con bò đầu đàn của mình có được.
Do đã mệt mỏi sau khi phải phỏng vấn \(N\) con bò được đánh số từ \(1\) đến \(N\) (\(2 \leq N \leq 10^9\)), anh John đã quên mất độ bảnh của những con bò ứng viên. Tuy nhiên, anh vẫn nhớ được \(Q\) (\(1 \leq Q \leq \text{ min(N - 1,100)}\)) cặp số (\(a_1, a_h\)), trong đó bò \(h_1\) là con bò bảnh nhất trong dãy từ bò 1 đến bò \(a_i\) (vậy \(1 \leq a_i < h_i \leq N\)).
Anh John cho bạn biết bảng điểm của những con bò dưới dạng một dãy \(c_1, \ldots, c_N\) (với \(c_i\) = 0 nghĩa là anh John đã quên mất độ bảnh bò của con bò có số thứ tự \(i\)). Nhiệm vụ của bạn là giúp anh John nhớ lại bảng điểm nhỏ nhất theo thứ tự từ điển bằng những thông tin đã có. Biết một dãy điểm sẽ nhỏ hơn một dãy khác nếu tại điểm khác biệt nhỏ nhất có của dãy này nhỏ hơn.
Anh John đã phỏng vấn tất cả \(T\) (\(1 \leq T \leq 20\)) ngày và cần bạn giúp đỡ ngay lạp tức. Dữ liệu đảm bảo tổng số bò của cả \(T\) ngày không quá \(3 \times 10^5\).
Test 1
1
7 3 5
1 0 2 3 0 4 0
1 2
3 4
4 5
1 2 2 3 4 4 1
Chúng ta có thể thấy rằng kết quả thỏa mãn tất cả các cặp mà nông dân John nhớ.
Có nhiều dãy số khác phù hợp với trí nhớ của Farmer John, chẳng hạn như:
1 2 2 3 5 4 1
1 2 2 3 4 4 5
Tuy nhiên, kết quả đưa ra là nhỏ nhất theo thứ tự từ điển.
Test 2
5
7 6 10
0 0 0 0 0 0 0
1 2
2 3
3 4
4 5
5 6
6 7
8 4 9
0 0 0 0 1 6 0 6
1 3
6 7
4 7
2 3
2 1 1
0 0
1 2
10 4 10
1 2 0 2 1 5 8 6 0 3
4 7
1 2
5 7
3 7
10 2 8
1 0 0 0 0 5 7 0 0 0
4 6
6 9
1 2 3 4 5 6 7
1 1 2 6 1 6 7 6
-1
1 2 5 2 1 5 8 6 1 3
-1
Trong test case số 3, vì \(C=1\), dãy số duy nhất có thể là 1 1. Tuy nhiên, trong trường hợp này, bò 2 không có điểm số lớn hơn bò 1, vì vậy chúng ta không thể thỏa mãn điều kiện.
Trong test case số 5, \(a_1\) và \(h_1\) cho chúng ta biết rằng bò 6 là bò đầu tiên có điểm số lớn hơn các bò từ 1 đến 4. Do đó, điểm số lớn nhất cho các bò từ 1 đến 6 là của bò 6: 5. Vì bò 7 có điểm số 7, bò 7 là bò đầu tiên có điểm số lớn hơn các bò từ 1 đến 6. Do đó, phát biểu thứ hai rằng bò 9 là bò đầu tiên có điểm số lớn hơn các bò từ 1 đến 6 không thể đúng.
Một tựa game mới ra đang làm bạn say mê. Trong game, bạn phải đi thu thập những bình thuốc tăng sức mạnh để đánh bại con boss ẩn "Bò thần"
Bạn đã sử dụng kĩ năng dò đường siêu hiếm và đã có được bản đồ của game dưới dạng một dãy \(N\) căn phòng (\(2 \leq N \leq 10^5\)) được đánh số từ \(1\) đến \(N\) và được kết nối bởi \(N - 1\) cạnh tạo thành một cây.
Bạn có thể sử dụng kĩ năng "bước nhảy không gian" để di chuyển giữa các phòng, trong đó mỗi bước nhảy là một lần dịch chuyển từ phòng bất kì đến phòng số 1. Sau khi hoàn thành một lần khám phá bạn sẽ dịch chuyển thẳng về phòng số 1 để tiết kiệm thời gian. Kĩ năng này tuy mạnh nhưng bị giới hạn số lần dùng, nên bạn muốn hoàn thành map và mở khóa cánh cửa đến boss sau khi dịch chuyển ít nhất có thể. Map sẽ được clear nếu bạn đi qua một căn phòng ít nhất một lần.
Cùng với đó, để nhân vật mạnh nhất có thể, bạn cần phải thu thập càng nhiều potion càng tốt. Biết mỗi lần bạn dịch chuyển, map sẽ được làm mới và một lọ potion sẽ xuất hiện ở một căn phòng ngẫu nhiên và bạn chỉ có thể lấy được nó ở lần khám phá tiếp theo, nếu không nó sẽ biến mất.
Bằng cách "ghé thăm" thư mục của game, bạn đã "tình cờ" biết được vị trí mà những potion sẽ xuất hiện trong \(N\) lần dịch chuyển tiếp theo của bạn. Hãy tính toán xem nếu bạn clear map với số lần dịch chuyển ít nhất thì sẽ thu thập được số lượng potion tối đã là bao nhiêu.
Test 1
5
5 4 3 2 1
1 2
1 3
3 4
3 5
2
Trong trường hợp này, số lượng chuyến đi tối thiểu cần thiết để hoàn thành bản đồ là 3. Một kế hoạch tối ưu có thể thu thập hai potion là:
Hoặc:
Bessie tỉnh dậy trên một hành tinh xa lạ. Trên hành tinh này có \(N\) (\(1\le N\le 10^4\)) tháng, lần lượt có \(a_1,\ldots,a_N\) ngày (\(1\leq a_i\leq 4\cdot 10^9\), mọi \(a_i\) đều là số nguyên). Ngoài ra còn có tuần, mỗi tuần dài \(L\) ngày, trong đó \(L\) là một số nguyên dương. Điều thú vị là Bessie biết rằng:
Không may, Bessie đã quên mất \(L\)! Hãy giúp cô bằng cách in tổng của tất cả các giá trị \(L\) có thể.
Lưu ý rằng các số nguyên lớn trong bài có thể đòi hỏi kiểu số nguyên 64 bit (ví dụ long long trong C/C++).
Dòng đầu chứa một số nguyên \(N\). Dòng thứ hai chứa \(N\) số nguyên cách nhau bởi dấu cách, \(a_1,\ldots,a_N\).
In một số nguyên: tổng của tất cả các giá trị \(L\) có thể.
Ví dụ 1
12
31 28 31 30 31 30 31 31 30 31 30 31
28
Các giá trị \(L\) có thể là 1, 2, 3, 4, 5, 6 và 7. Ví dụ, \(L=7\) hợp lệ vì mỗi tháng dài ít nhất \(4\cdot 7=28\) ngày, và số ngày của mỗi tháng đồng dư với 0, 2 hoặc 3 theo modulo 7.
Ví dụ 2
4
31 35 28 29
23
Các giá trị \(L\) có thể là 1, 2, 3, 4, 6 và 7. Ví dụ, \(L=6\) hợp lệ vì mỗi tháng dài ít nhất \(4\cdot 6=24\) ngày, và số ngày của mỗi tháng đồng dư với 1, 4 hoặc 5 theo modulo 6.
USACO 2024 January Contest, Silver — Cowlendar: https://usaco.org/index.php?page=viewproblem2&cpid=1376
Tác giả đề: Brandon Wang