Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Tập xe đạp

100 điểm

Cô giáo trường tiểu học \(X\) đang dạy \(n\) học sinh tập xe đạp, các học sinh được đánh số từ \(1\) tới \(n\), học sinh thứ \(j\) có trọng lượng là \(a_{j}\). Có một xe đạp duy nhất với tải trọng là \(m\), hai học sinh chỉ có thể cùng lên xe nếu tổng trọng lượng của hai học sinh không vượt quá \(m\).

Cô giáo tự hỏi có bao nhiêu cách chọn hai học sinh khác nhau cho cùng lên xe, sau nhiều giờ tính toán không có kết quả, cô quyết định hỏi các chuyên gia lập trình giải bài toán Counting Student Pairs (CSP)

Yêu cầu: Đếm số cặp chỉ số \(i, j\) trong đó \(i < j\) và \(a_i + a_j \leq m\)

Input

  • Dòng \(1\) chứa hai số nguyên dương \(n, m\ (m \leq 10^6)\)
  • Dòng \(2\) chứa \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\) (\(\forall{i}: a_i \leq 10^6\))

Output

Ghi một số nguyên duy nhất là đáp số

Example

Test 1

Input
10 18
8 4 14 3 17 9 4 14 8 3
Output
29

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(n \leq 10^4\).
  • Subtask \(2\) (\(20\%\) số điểm): \(n \leq 10^5\).
  • Subtask \(3\) (\(20\%\) số điểm): \(n \leq 10^6\).

root

Phân phối hàng hóa

100 điểm

Công ty Logistics ABC đang quản lý một dây chuyền đóng gói hàng hóa. Mỗi lượt, có \(n\) kiện hàng được xếp liên tiếp nhau, với kiện hàng thứ \(i\) có giá trị là \(a_i\). Để thuận tiện cho việc vận chuyển, các kiện hàng cần được chia thành \(k\) lô hàng. Mỗi lô hàng bao gồm một số kiện liên tiếp trên dây chuyền, và mỗi kiện hàng chỉ thuộc về đúng một lô. Tổng giá trị của các kiện hàng trong mỗi lô không được vượt quá một giới hạn cho trước là \(c\).

Sau khi chia lô, công ty cần đánh giá chất lượng của mỗi lô bằng cách tìm kiện hàng có giá trị lớn nhất. Tổng giá trị của các kiện hàng lớn nhất này từ tất cả các lô được gọi là điểm số \(s\).

Yêu cầu: Với mỗi giới hạn \(c\) được đưa ra, hãy giúp công ty tìm cách chia \(n\) kiện hàng thành một số lô nhỏ nhất có thể (\(k\) nhỏ nhất). Trong số các cách chia có cùng số lô nhỏ nhất này, hãy chọn cách chia mang lại điểm số \(s\) lớn nhất.

Input

  • Dòng đầu tiên chứa một số nguyên \(n\) (\(1 \le n \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)).
  • Dòng thứ ba chứa một số nguyên \(q\) (\(1 \le q \le 10\)) là số lượng truy vấn.
  • Mỗi dòng trong số \(q\) dòng tiếp theo tương ứng với một truy vấn chứa một số nguyên \(c\) (\(\max(a_1, a_2, \ldots, a_n) \le c \le 10^{10}\)).

Output

  • Gồm \(q\) dòng, mỗi dòng tương ứng với một truy vấn, in ra hai số nguyên \(k\) và \(s\) tìm được.

Example

Test 1

Input
5
5 3 2 2 5
2
9
8
Output
2 10
3 13

Scoring

  • Subtask 1 (20% số điểm): \(n \le 20\).
  • Subtask 2 (20% số điểm): \(n \leq 100\).
  • Subtask 3 (20% số điểm): \(a_1 \ge a_2 \ge \ldots \ge a_n\).
  • Subtask 4 (10% số điểm): \(k \leq 3\).
  • Subtask 5 (10% số điểm): \(c \leq 100\).
  • Subtask 6 (20% số điểm): Không có ràng buộc gì thêm.

root

Trung tâm dữ liệu

100 điểm

Giang hiện đang là kiến trúc sư trưởng cho tập đoàn viễn thông đa quốc gia G-Network. Hệ thống mạng lưới của tập đoàn bao gồm \(n\) trạm trung chuyển được đánh số từ \(1\) đến \(n\). Để tối ưu hóa chi phí vận hành, các trạm này được kết nối với nhau bởi \(n-1\) tuyến cáp quang hai chiều, sao cho giữa hai trạm bất kỳ luôn tồn tại một đường đi duy nhất. Mỗi tuyến cáp kết nối giữa trạm \(u\) và trạm \(v\) có độ dài vật lý là \(w\).

Trong chiến lược mở rộng thị trường, tập đoàn sẽ kích hoạt các trạm phát sóng tại các vị trí chiến lược. Giả sử tại một thời điểm, có một tập hợp \(S\) các trạm được chọn làm trạm phát sóng đặc biệt. Để quản lý dữ liệu từ các trạm này, tập đoàn cần thiết lập một Trung tâm điều hành G.

Vị trí đặt trung tâm G có thể là bất kỳ trạm nào trong số \(n\) trạm của mạng lưới. Để giảm thiểu độ trễ tín hiệu, Giang định nghĩa giá trị G là tổng khoảng cách ngắn nhất từ trung tâm G đến tất cả các trạm phát sóng đặc biệt trong tập \(S\). Trạm được chọn làm trung tâm G phải là trạm có tổng khoảng cách này là nhỏ nhất. (Lưu ý: Có thể có nhiều trạm thỏa mãn điều kiện làm trung tâm G, nhưng giá trị G là duy nhất).

Giang đưa ra \(q\) kế hoạch mở rộng khác nhau. Trong mỗi kế hoạch, anh cung cấp một danh sách gồm \(m\) trạm dự kiến sẽ được kích hoạt theo thứ tự \(a_1, a_2, \dots, a_m\). Đối với mỗi kế hoạch, Giang yêu cầu bạn thực hiện các báo cáo phân tích sau:
Với mỗi số nguyên \(x\) từ \(1\) đến \(m\), hãy tính giá trị G tại thời điểm tập trạm phát sóng đặc biệt mới chỉ gồm \(x\) trạm đầu tiên trong danh sách kích hoạt: \(S = \{a_1, a_2, \dots, a_x\}\).

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) (\(1 \leq n, q \leq 2 \times 10^{5}\)) --- số lượng trạm và số lượng kế hoạch.
  • Trong \(n - 1\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(u, v\) và \(w\) (\(1 \leq u, v \leq n, 1 \leq w \leq 10^{6}\)) mô tả một tuyến cáp quang nối trạm \(u\) và \(v\) với độ dài \(w\).
  • \(q\) dòng tiếp theo, mỗi dòng mô tả một kế hoạch:

  • Số đầu tiên là \(m\) (\(1 \leq m \leq n\)) --- số lượng trạm dự kiến kích hoạt.

  • Tiếp theo là \(m\) số nguyên phân biệt \(a_1, a_2, \dots, a_m\) (\(1 \le a_i \le n\)) theo đúng thứ tự kích hoạt.

  • Tổng giá trị \(m\) trong tất cả các truy vấn không vượt quá \(6 \times 10^{5}\).

Output

  • Với mỗi kế hoạch (truy vấn), in ra \(m\) số nguyên trên một dòng, số thứ \(x\) là giá trị G tương ứng với tập \(x\) trạm phát sóng đầu tiên.

Example

Test 1

Input
10 2
3 5 2
5 6 2
6 7 2
6 8 2
8 9 1
2 4 1
4 10 2
3 4 1
1 3 2
5 1 2 3 4 5
4 4 1 5 2
Output
0 4 4 5 7 
0 3 5 7 

Scoring

  • Subtask 1 (17%): \(n \leq 5000\) và tổng \(m \leq 5000\).
  • Subtask 2 (19%): Các trạm được nối với nhau thành một đường thẳng (\(1-2-3-\dots-n\)).
  • Subtask 3 (20%): Mỗi kế hoạch luôn có đúng \(m = 3\) trạm.
  • Subtask 4 (21%): Tất cả các tuyến cáp đều có cùng độ dài \(w = 1\).
  • Subtask 5 (23%): Không có ràng buộc gì thêm.

root

Cân thăng bằng

100 điểm

Cân thằng bằng đã từng rất phổ biến trong xã hội loài người, vì tính đơn giản của nó. Cấu tạo của cân gồm hai đĩa \(A, B\) được đặt ở hai đầu của một đòn bẩy.

Có \(n\) quả cân, quả thứ \(i\) có khối lượng \(m_i\). Để cân một vật, người ta đặt nó vào đĩa \(A\), sau đó thêm một vài quả cân vào các đĩa sao cho cân thăng bằng. Lúc này, cân nặng của vật là tổng khối lượng các quả cân trên đĩa \(B\) trừ đi tổng khối lượng các quả cân trên đĩa \(A\), vì cân chỉ thăng bằng khi tổng khối lượng trên đĩa \(A\) bằng tổng khối lượng trên đĩa \(B\).

Tuần trước, con chim vừa chở người em đi lấy vàng về, người em tiến hành cân lại số vàng mình nhận được. Để thuận tiện, anh ấy sẽ để nguyên túi vàng và cân một lần thay vì phải tách số vàng ra. Sau khi cân, anh ấy biết chính xác rằng túi vàng nặng \(M\).

Sau đó, vì tò mò và đam mê thuật toán, anh ấy thắc mắc là liệu có bao nhiêu cách cân khác nhau? Cụ thể hơn, bạn được cho một vật có khối lượng \(M\), bạn đặt nó vào đĩa \(A\) sau đó thêm một số quả cân vào các đĩa sao cho cân thăng bằng. Cần đếm số cách khác nhau để thêm các quả cân như trên. Hai cách được coi là khác nhau nếu tồn tại \(i\), \(1 ≤ i ≤ n\), sao cho hoặc là trong cách này thì sử dụng quả cân thứ \(i\) còn trong cách kia thì không, hoặc là cả hai cách đều sử dụng quả cân thứ \(i\) nhưng đặt vào hai đĩa khác nhau.

Input

  • Dòng đầu chứa: \(n, M\)

  • Dòng tiếp theo chứa dãy \(m\)

Output

  • Một số nguyên duy nhất là kết quả bài toán

Example

Test 1

Input
6 10
1 2 3 4 5 6
Output
17
Note

• \(n ≤ 20\), \(1 ≤ m_i\) , \(M\) ≤ \(10^6\) ;

Xem thêm