APIO 2015

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 APIO 2015 - Bali Sculptures 100 (p) 1.0s 64M
2 APIO 2015 - Jakarta Skyscrapers 100 (p) 1.0s 256M
3 APIO 2015 - Palembang Bridges 100 (p) 2.0s 256M

1. APIO 2015 - Bali Sculptures

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 64M Input: bàn phím Output: màn hình

Trên một đường phố chính ở Bali có \(N\) tác phẩm điêu khắc, đánh số liên tiếp từ \(1\) đến \(N\). Tác phẩm thứ \(i\) có tuổi là \(Y_i\).

Chính phủ muốn chia các tác phẩm thành \(X\) nhóm, với \(A\le X\le B\), sao cho:

  • Mỗi nhóm chứa ít nhất một tác phẩm và mỗi tác phẩm thuộc đúng một nhóm.
  • Các tác phẩm trong cùng một nhóm nằm liên tiếp trên đường phố.

Với mỗi nhóm, tính tổng tuổi của các tác phẩm trong nhóm. Giá trị thẩm mỹ tổng hợp là kết quả phép OR theo bit của tất cả các tổng đó. Hãy tìm giá trị thẩm mỹ tổng hợp nhỏ nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên \(N,A,B\).
  • Dòng thứ hai chứa \(N\) số nguyên \(Y_1,Y_2,\ldots,Y_N\).

Dữ liệu ra

In giá trị thẩm mỹ tổng hợp nhỏ nhất.

Ví dụ

Ví dụ 1

Input
6 1 3
8 1 2 1 5 4
Output
11

Giải thích

Chia thành hai nhóm (8 1 2)(1 5 4). Hai tổng là \(11\)\(10\), nên giá trị thẩm mỹ là \(11\mathbin{\mathrm{OR}}10=11\).

Phân nhóm

Nhóm Điểm Ràng buộc
1 9 \(1\le N\le20\); \(1\le A\le B\le N\); \(0\le Y_i\le10^9\)
2 16 \(1\le N\le50\); \(1\le A\le B\le\min(20,N)\); \(0\le Y_i\le10\)
3 21 \(1\le N\le100\); \(A=1\); \(1\le B\le N\); \(0\le Y_i\le20\)
4 25 \(1\le N\le100\); \(1\le A\le B\le N\); \(0\le Y_i\le10^9\)
5 29 \(1\le N\le2\,000\); \(A=1\); \(1\le B\le N\); \(0\le Y_i\le10^9\)

Nguồn

Asia-Pacific Informatics Olympiad 2015, bài Bali Sculptures.

2. APIO 2015 - Jakarta Skyscrapers

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Jakarta có \(N\) tòa nhà chọc trời nằm trên một đường thẳng, đánh số từ \(0\) đến \(N-1\) từ trái sang phải.

\(M\) sinh vật gọi là doge, đánh số từ \(0\) đến \(M-1\). Ban đầu doge \(i\) ở tòa nhà \(B_i\) và có năng lượng \(P_i\). Trong một bước nhảy, doge có năng lượng \(p\) đang ở tòa nhà \(b\) có thể nhảy đến \(b+p\) hoặc \(b-p\), miễn là tòa nhà đích có số hiệu trong \([0,N-1]\).

Doge \(0\) cần truyền một tin khẩn cấp tới doge \(1\). Sau khi nhận tin, một doge có thể:

  • thực hiện một bước nhảy; hoặc
  • truyền tin cho một doge khác đang ở cùng tòa nhà.

Hãy tìm tổng số bước nhảy ít nhất mà tất cả doge phải thực hiện để tin đến được doge \(1\), hoặc cho biết việc đó không thể thực hiện.

Dữ liệu vào

  • Dòng đầu chứa \(N,M\).
  • \(M\) dòng tiếp theo, dòng thứ \(i\) chứa \(B_i,P_i\).

Dữ liệu ra

In tổng số bước nhảy nhỏ nhất, hoặc -1 nếu không thể truyền tin.

Ràng buộc chung

  • \(0\le B_i<N\).
  • \(M\ge2\).

Ví dụ

Ví dụ 1

Input
5 3
0 2
1 1
4 1
Output
5

Giải thích

Doge \(0\) nhảy từ tòa nhà \(0\) đến \(2\), rồi đến \(4\) trong hai bước và truyền tin cho doge \(2\). Doge \(2\) nhảy từ \(4\) đến \(3\), \(2\), rồi \(1\) trong ba bước và truyền tin cho doge \(1\). Tổng cộng có năm bước nhảy.

Phân nhóm

Nhóm Điểm Ràng buộc bổ sung
1 10 \(1\le N\le10\); \(1\le P_i\le10\); \(2\le M\le3\)
2 12 \(1\le N\le100\); \(1\le P_i\le100\); \(2\le M\le2\,000\)
3 14 \(1\le N\le2\,000\); \(1\le P_i\le2\,000\); \(2\le M\le2\,000\)
4 21 \(1\le N\le2\,000\); \(1\le P_i\le2\,000\); \(2\le M\le30\,000\)
5 43 \(1\le N\le30\,000\); \(1\le P_i\le30\,000\); \(2\le M\le30\,000\)

Nguồn

Asia-Pacific Informatics Olympiad 2015, bài Jakarta Skyscrapers.

3. APIO 2015 - Palembang Bridges

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Thành phố Palembang bị sông Musi chia thành hai vùng \(A\)\(B\). Mỗi vùng có đúng \(1\,000\,000\,001\) tòa nhà dọc bờ sông, đánh số từ \(0\) đến \(1\,000\,000\,000\). Hai tòa nhà liền kề cách nhau một đơn vị; bề rộng sông cũng là một đơn vị. Tòa nhà \(i\) ở vùng \(A\) đối diện tòa nhà \(i\) ở vùng \(B\).

\(N\) công dân. Nhà của người \(i\) ở tòa nhà \(S_i\) thuộc vùng \(P_i\), còn nơi làm việc ở tòa nhà \(T_i\) thuộc vùng \(Q_i\). Chính phủ sẽ xây tối đa \(K\) cây cầu. Mỗi cầu nối hai tòa nhà đối diện ở hai vùng, vuông góc với sông, và các cầu không chồng lên nhau.

Sau khi xây cầu, gọi \(D_i\) là khoảng cách lái xe ngắn nhất từ nhà đến nơi làm việc của công dân \(i\). Hãy chọn vị trí cầu để tối thiểu hóa:

\[ D_1+D_2+\cdots+D_N. \]

Dữ liệu vào

  • Dòng đầu chứa \(K,N\).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa \(P_i,S_i,Q_i,T_i\). Hai giá trị \(P_i,Q_i\) là ký tự A hoặc B; các trường còn lại là số nguyên.

Dữ liệu ra

In tổng khoảng cách nhỏ nhất.

Ràng buộc chung

  • \(P_i,Q_i\in\{\texttt{A},\texttt{B}\}\).
  • \(0\le S_i,T_i\le1\,000\,000\,000\).
  • Nhiều nhà hoặc nơi làm việc có thể nằm trong cùng một tòa nhà.

Ví dụ

Ví dụ 1

Input
1 5
B 0 A 4
B 1 B 3
A 5 B 7
B 2 A 6
B 1 A 7
Output
24

Ví dụ 2

Input
2 5
B 0 A 4
B 1 B 3
A 5 B 7
B 2 A 6
B 1 A 7
Output
22

Giải thích

Cấu hình thành phố trong cả hai ví dụ:

{{asset:apio15-bridge-initial}}

Ở ví dụ thứ nhất chỉ có một cách đặt cầu tối ưu:

{{asset:apio15-bridge-sample1}}

Một cách đặt hai cầu tối ưu cho ví dụ thứ hai:

{{asset:apio15-bridge-sample2}}

Phân nhóm

Nhóm Điểm Ràng buộc bổ sung
1 8 \(K=1\), \(1\le N\le1\,000\)
2 14 \(K=1\), \(1\le N\le100\,000\)
3 9 \(K=2\), \(1\le N\le100\)
4 32 \(K=2\), \(1\le N\le1\,000\)
5 37 \(K=2\), \(1\le N\le100\,000\)

Nguồn

Asia-Pacific Informatics Olympiad 2015, bài Palembang Bridges.