| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2012 - Building 2 | 100 (p) | 1.0s | 64M |
| 2 | JOI 2012 - Fish | 100 (p) | 1.5s | 64M |
| 3 | JOI 2012 - JOI Flag | 100 (p) | 3.0s | 64M |
Nhật Bản có \(N\) thành phố, được nối với nhau bằng \(N-1\) con đường hai chiều. Từ một thành phố bất kỳ có thể đi đến mọi thành phố khác bằng các con đường này. Mỗi thành phố có một tòa nhà trụ sở chính quyền; tòa nhà ở thành phố \(i\) cao \(H_i\).
Nhân dịp Olympic Tin học Quốc tế được tổ chức tại Nhật Bản, người ta muốn lên kế hoạch cho một chuyến tham quan để chào đón các thí sinh trên thế giới. Chuyến đi bắt đầu tại một thành phố, liên tiếp đi theo các con đường sang thành phố khác và kết thúc tại một thành phố. Không thành phố nào được ghé thăm quá một lần.
Người ta sẽ trang trí tòa nhà trụ sở chính quyền ở một số thành phố trên hành trình. Nhà thiết kế yêu cầu chiều cao của các tòa nhà được trang trí phải tăng nghiêm ngặt theo thứ tự ghé thăm. Cụ thể, nếu các thành phố có tòa nhà được trang trí lần lượt là \(i_1,i_2,\ldots,i_k\) theo thứ tự trên hành trình, thì phải có
Không bắt buộc phải trang trí tòa nhà tại mọi thành phố đi qua.
Bạn được tự do chọn thành phố bắt đầu, thành phố kết thúc và các thành phố có tòa nhà được trang trí.
Hãy tính số tòa nhà lớn nhất có thể trang trí.
Đọc từ đầu vào chuẩn:
In ra đầu ra chuẩn một số nguyên là số tòa nhà lớn nhất có thể trang trí.
Ví dụ 1
7
4
2
5
3
1
8
7
1 2
2 3
3 4
4 5
3 6
6 7
4
JOI chợt nảy ra ý định nuôi cá. Cửa hàng thú cưng gần nhà cậu đang bán \(N\) con cá. Con cá thứ \(i\) dài \(L_i\) cm và có một trong ba màu: đỏ, xanh lá cây hoặc xanh lam. JOI quyết định chọn ít nhất một con trong số đó để nuôi ở nhà.
Tuy nhiên, nếu nuôi chung cá lớn và cá nhỏ, cá lớn có thể ăn mất cá nhỏ. Cụ thể, nếu chiều dài của cá \(X\) lớn hơn hoặc bằng hai lần chiều dài của cá \(Y\), thì khi nuôi chung, \(X\) sẽ ăn \(Y\). Vì vậy, JOI không được chọn đồng thời hai con cá như thế.
JOI muốn biết có bao nhiêu tổ hợp màu sắc có thể xuất hiện trong những con cá cậu chọn nuôi. Hai tổ hợp được coi là khác nhau nếu số cá của ít nhất một trong ba màu đỏ, xanh lá cây, xanh lam khác nhau. Những cách chọn cá khác nhau nhưng có cùng số cá ở từng màu chỉ được tính là một tổ hợp.
Cho chiều dài và màu sắc của từng con cá trong cửa hàng, hãy tính số tổ hợp màu sắc có thể có.
Đọc từ đầu vào chuẩn:
R, G, B lần lượt biểu thị màu đỏ, xanh lá cây, xanh lam.In ra đầu ra chuẩn trên một dòng số tổ hợp màu sắc có thể có khi chọn ít nhất một con cá và không có con nào ăn con nào.
R, G, B.Ví dụ 1
4
10 R
4 G
8 B
5 B
6
Con cá thứ \(1\) sẽ ăn con cá thứ \(2\), nên không thể nuôi chúng cùng nhau. Tương tự, không thể nuôi chung cặp cá thứ \(1\) và thứ \(4\), hoặc cặp cá thứ \(2\) và thứ \(3\). Có \(6\) tổ hợp màu sắc: một cá đỏ; một cá xanh lá cây; một cá xanh lam; một cá đỏ và một cá xanh lam; một cá xanh lá cây và một cá xanh lam; hai cá xanh lam.
Ví dụ 2
10
26 B
10 B
16 G
20 R
6 R
5 G
13 G
40 R
8 R
33 R
13
Bạn muốn làm một lá cờ JOI cấp \(K\) để dùng làm lá cờ mới cho Olympic Tin học Nhật Bản. Cờ JOI được định nghĩa như sau:
J, O, I.J, O, I. Khi chia bảng thành bốn hình vuông \(2^{m-1}\times2^{m-1}\), bốn phần này phải gồm: một cờ JOI cấp \(m-1\), một phần chỉ chứa J, một phần chỉ chứa O và một phần chỉ chứa I. Bốn phần có thể nằm ở các vị trí bất kỳ trong bốn góc.Chẳng hạn, bảng sau là một cờ JOI cấp \(2\):
OIJJ
JJJJ
OOII
OOII
Bảng sau là một cờ JOI cấp \(3\):
IIIIIIOO
IIIIIIOO
IIIIJOJJ
IIIIOIJJ
JJJJOOOO
JJJJOOOO
JJJJOOOO
JJJJOOOO
Bạn đang có một lá cờ gồm \(2^K\times2^K\) ô, trong đó một số ô đã được viết một ký tự J, O hoặc I. Bạn muốn điền thêm ký tự vào các ô trống và sửa một số ký tự đã có để hoàn thành một cờ JOI cấp \(K\). Viết một ký tự vào ô trống có chi phí \(0\); thay đổi ký tự đã có trong một ô có chi phí \(1\).
Hãy tính tổng chi phí nhỏ nhất để hoàn thành lá cờ.
Đọc từ đầu vào chuẩn:
In ra đầu ra chuẩn trên một dòng một số nguyên là tổng chi phí nhỏ nhất để tạo cờ JOI cấp \(K\).
J, O, I.Ví dụ 1
2 10
2 2 J
3 3 I
1 3 I
1 1 O
3 2 J
2 1 I
4 1 O
3 4 I
4 4 O
2 3 O
3
Dữ liệu mô tả lá cờ sau, trong đó - biểu thị ô trống:
OI-O
-JJ-
IOI-
--IO
Có thể biến lá cờ này thành lá cờ dưới đây với chi phí \(3\):
OIJJ
JJJJ
OOII
OOII
Ví dụ 2
4 30
16 14 J
2 8 O
10 9 J
10 13 I
6 6 O
11 14 I
1 2 I
3 2 O
3 10 O
1 12 I
4 11 I
9 5 J
15 1 O
12 4 I
16 5 J
10 7 J
3 8 J
4 10 I
4 7 I
2 11 I
2 12 O
15 5 J
15 7 J
6 9 J
5 7 O
14 5 J
12 11 J
15 10 O
13 16 I
13 11 I
9