| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | APIO 2014 - Palindromes | 100 (p) | 1.0s | 128M |
| 2 | APIO 2014 - Split the Sequence | 100 (p) | 2.0s | 128M |
| 3 | APIO 2014 - Beads and Wires | 100 (p) | 1.0s | 128M |
Cho một xâu chỉ gồm chữ cái Latin thường. Với mỗi xâu con, định nghĩa giá trị xuất hiện là số lần xâu con đó xuất hiện trong xâu ban đầu nhân với độ dài của nó.
Hãy tìm giá trị xuất hiện lớn nhất trong số các xâu con đối xứng.
Một xâu con của \(s=s_1s_2\ldots s_{|s|}\) là xâu không rỗng \(s_is_{i+1}\ldots s_j\) với \(1\le i\le j\le|s|\). Các lần xuất hiện có thể chồng lấn. Xâu đối xứng là xâu đọc từ trái sang phải giống đọc từ phải sang trái.
Dòng duy nhất chứa một xâu không rỗng gồm các chữ cái từ a đến z.
In giá trị xuất hiện lớn nhất của một xâu con đối xứng.
Ví dụ 1
abacaba
7
Ví dụ 2
www
4
Trong ví dụ thứ nhất, các xâu con đối xứng khác nhau là a, b, c, aba, aca, bacab, abacaba. Giá trị xuất hiện tương ứng là \(4,2,1,6,3,5,7\), nên đáp án là \(7\).
| Nhóm | Điểm | Ràng buộc |
|---|---|---|
| 1 | 8 | $1\le |
| 2 | 15 | $1\le |
| 3 | 24 | $1\le |
| 4 | 26 | $1\le |
| 5 | 27 | $1\le |
Asia-Pacific Informatics Olympiad 2014, bài Palindromes.
Bạn có một dãy \(n\) số nguyên không âm và cần chia dãy thành \(k+1\) đoạn liên tiếp không rỗng. Ban đầu toàn bộ dãy là một đoạn. Lặp lại đúng \(k\) lần:
Mỗi lần cắt, bạn nhận số điểm bằng tích tổng các phần tử của hai đoạn mới tạo ra. Hãy tối đa hóa tổng điểm qua \(k\) lần cắt.
Nếu có nhiều phương án tối ưu, in bất kỳ phương án nào. Thứ tự các vị trí trên dòng thứ hai không ảnh hưởng đến kết quả cuối cùng, nhưng mỗi vị trí phải khác nhau và phải tạo ra đúng \(k+1\) đoạn không rỗng.
Ví dụ 1
7 3
4 1 3 4 0 2 3
108
1 3 5
Tổng điểm là \(52+36+20=108\).
| Nhóm | Điểm | Ràng buộc bổ sung |
|---|---|---|
| 1 | 11 | \(1\le k<n\le10\) |
| 2 | 11 | \(1\le k<n\le50\) |
| 3 | 11 | \(1\le k<n\le200\) |
| 4 | 17 | \(2\le n\le1\,000\), \(1\le k\le\min(n-1,200)\) |
| 5 | 21 | \(2\le n\le10\,000\), \(1\le k\le\min(n-1,200)\) |
| 6 | 29 | \(2\le n\le100\,000\), \(1\le k\le\min(n-1,200)\) |
Asia-Pacific Informatics Olympiad 2014, bài Split the Sequence.
Một trò chơi phổ biến thời Leonardo sử dụng các hạt và dây. Dây có màu đỏ hoặc xanh, các hạt được đánh số từ \(1\) đến \(n\). Trò chơi bắt đầu với một hạt duy nhất. Sau đó có thể thêm hạt mới bằng một trong hai thao tác:
Append(w, v): gắn hạt mới \(w\) vào hạt đã có \(v\) bằng một đoạn dây đỏ.Insert(w, u, v): chọn một đoạn dây đỏ đang nối hai hạt \(u,v\), bỏ dây đó và chèn hạt mới \(w\) vào giữa bằng hai đoạn dây xanh \(u-w\) và \(w-v\).Mỗi đoạn dây có một độ dài. Điểm cuối cùng là tổng độ dài của các dây xanh; dây đỏ không đóng góp điểm.
Bạn được cho cấu hình cuối cùng: các cặp hạt nối nhau và độ dài từng dây, nhưng không biết màu dây. Trong số mọi quá trình chơi hợp lệ có thể tạo ra cấu hình này, hãy tìm điểm cuối cùng lớn nhất.
Cấu hình đã cho là một cây.
In tổng độ dài dây xanh lớn nhất có thể đạt được.
Ví dụ 1
5
1 2 10
1 3 40
1 4 15
1 5 20
60
Ví dụ 2
10
4 10 2
1 2 21
1 3 13
6 7 1
7 9 5
2 4 3
2 5 8
1 6 55
6 8 34
140
Ở ví dụ thứ nhất, bắt đầu với hạt \(3\), nối thêm hạt \(5\) bằng dây đỏ tùy ý, chèn hạt \(1\) vào dây \(3-5\) bằng hai dây xanh dài \(40\) và \(20\), rồi nối thêm hạt \(2\) và \(4\) bằng dây đỏ. Tổng độ dài dây xanh là \(60\) và không thể đạt giá trị lớn hơn.
{{asset:apio14-beads-sample1}}
Cấu hình của ví dụ thứ hai có thể đạt điểm \(140\) như hình sau.
{{asset:apio14-beads-sample2}}
| Nhóm | Điểm | Ràng buộc |
|---|---|---|
| 1 | 13 | \(1\le n\le10\) |
| 2 | 15 | \(1\le n\le200\) |
| 3 | 29 | \(1\le n\le10\,000\) |
| 4 | 43 | \(1\le n\le200\,000\) |
Asia-Pacific Informatics Olympiad 2014, bài Beads and Wires.