| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | BOI 2006 - City Planning | 100 (p) | 3.0s | 256M |
| 2 | BOI 2006 - RLE Compression | 100 (p) | 10.0s | 256M |
| 3 | BOI 2006 - Jump the Board! | 100 (p) | 3.0s | 256M |
Một trạm không gian sẽ sử dụng \(N\) người. Thành phố dành cho họ được xây trên các lô đất vuông quanh trạm. Trạm nằm tại \((0,0)\); mỗi lô khác có tọa độ nguyên \((x,y)\). Trên mỗi lô có thể xây một tòa nhà không quá \(K\) tầng, mỗi tầng có đúng một căn hộ, và mỗi người sống trong một căn hộ riêng.
Do giao thông chỉ đi trên các đường giữa các lô, khoảng cách từ lô \((x,y)\) đến trạm là
Chi phí xây một tòa nhà bằng tổng chi phí xây từng tầng. Chi phí tầng chỉ phụ thuộc vào độ cao của tầng, không phụ thuộc vị trí. Trong \(30\) năm sử dụng, chi phí đưa một người đi lại giữa nhà và trạm là \(T\cdot d\), với \(d\) là khoảng cách từ tòa nhà đến trạm.
Hãy tìm tổng chi phí nhỏ nhất để xây đủ nhà ở và vận hành giao thông trong \(30\) năm.
Dòng đầu chứa \(N,T,K\). Mỗi dòng thứ \(i\) trong \(K\) dòng tiếp theo chứa \(c_i\), chi phí xây căn hộ ở tầng \(i\) khi các tầng thấp hơn đã được xây.
In một số nguyên: tổng chi phí nhỏ nhất.
Ví dụ 1
17 5 4
100
107
114
121
1778
RLE là một phương pháp nén các dãy có nhiều ký tự giống nhau liên tiếp. Bảng chữ cái gồm \(n\) ký tự, biểu diễn bởi các số trong
Mã của một dãy cũng là một dãy ký tự thuộc \(\Sigma\). Tại mọi thời điểm có một ký tự đánh dấu lặp \(e\); ban đầu \(e=0\), nhưng ký tự này có thể thay đổi trong quá trình giải mã.
Một dãy có thể có nhiều mã với độ dài khác nhau. Cho một mã hợp lệ, hãy tìm một mã ngắn nhất biểu diễn cùng dãy đã giải mã.
Dòng đầu chứa \(n\). Dòng thứ hai chứa \(m\), độ dài mã đã cho. Dòng cuối chứa \(m\) số nguyên thuộc \(\Sigma\).
Dòng đầu chứa \(m'\), độ dài nhỏ nhất của một mã biểu diễn cùng dãy. Dòng cuối chứa \(m'\) số nguyên của một mã ngắn nhất. Nếu có nhiều đáp án, có thể in bất kỳ đáp án nào.
Ví dụ 1
4
20
1 0 0 1 0 2 3 0 3 2 0 1 0 0 3 0 2 1 0 1
19
1 0 1 0 0 0 1 2 3 1 3 2 0 3 0 2 1 0 1
Ví dụ 2
14
15
10 10 10 0 10 0 10 10 13 10 10 13 10 10 13
9
0 10 13 0 10 13 0 10 10
Một bảng trò chơi \(n\times n\) chứa một số nguyên không âm trong mỗi ô. Bạn bắt đầu ở góc trên bên trái và cần đến góc dưới bên phải. Số trong ô hiện tại là độ dài bắt buộc của bước nhảy tiếp theo. Mỗi bước chỉ được đi sang phải hoặc đi xuống và không được ra ngoài bảng. Ô chứa \(0\) là ngõ cụt.
Hãy tính số đường đi hợp lệ từ góc trên bên trái đến góc dưới bên phải.
Dòng đầu chứa số nguyên \(n\). Mỗi dòng trong \(n\) dòng tiếp theo chứa \(n\) số nguyên mô tả bảng.
In một số nguyên: số đường đi hợp lệ.
Ví dụ 1
4
2 3 3 1
1 2 1 3
1 2 3 1
3 1 1 0
3